#define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl}
#define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0}

static const struct LevelUpMove sNoneLevelUpLearnset[] = {
    LEVEL_UP_MOVE(1, MOVE_POUND),
    LEVEL_UP_END
};

#if P_FAMILY_BULBASAUR
static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_GROWTH),
    LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(18, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(27, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(30, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sIvysaurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(35, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(40, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sVenusaurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 9, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(37, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(44, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BULBASAUR

#if P_FAMILY_CHARMANDER
static const struct LevelUpMove sCharmanderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(17, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(36, MOVE_INFERNO),
    LEVEL_UP_MOVE(40, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(19, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(48, MOVE_INFERNO),
    LEVEL_UP_MOVE(54, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sCharizardLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(19, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(39, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(46, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(54, MOVE_INFERNO),
    LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHARMANDER

#if P_FAMILY_SQUIRTLE
static const struct LevelUpMove sSquirtleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 3, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(18, MOVE_PROTECT),
    LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(27, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(33, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(36, MOVE_SKULL_BASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sWartortleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(35, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_SKULL_BASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(35, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(56, MOVE_SKULL_BASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SQUIRTLE

#if P_FAMILY_CATERPIE
static const struct LevelUpMove sCaterpieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMetapodLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sButterfreeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(24, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(28, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(36, MOVE_TAILWIND),
    LEVEL_UP_MOVE(40, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(44, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CATERPIE

#if P_FAMILY_WEEDLE
static const struct LevelUpMove sWeedleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKakunaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeedrillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(14, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(17, MOVE_POISON_STING),
    LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(23, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(29, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(35, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(44, MOVE_FELL_STINGER),
    LEVEL_UP_END
};
#endif //P_FAMILY_WEEDLE

#if P_FAMILY_PIDGEY
static const struct LevelUpMove sPidgeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(21, MOVE_TWISTER),
    LEVEL_UP_MOVE(25, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_ROOST),
    LEVEL_UP_MOVE(41, MOVE_TAILWIND),
    LEVEL_UP_MOVE(45, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(49, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(53, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(22, MOVE_TWISTER),
    LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(42, MOVE_ROOST),
    LEVEL_UP_MOVE(47, MOVE_TAILWIND),
    LEVEL_UP_MOVE(52, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(57, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(62, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPidgeotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_GUST),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(22, MOVE_TWISTER),
    LEVEL_UP_MOVE(27, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(44, MOVE_ROOST),
    LEVEL_UP_MOVE(50, MOVE_TAILWIND),
    LEVEL_UP_MOVE(56, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(62, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(68, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PIDGEY

#if P_FAMILY_RATTATA
static const struct LevelUpMove sRattataLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(16, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(22, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(34, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sRaticateLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(16, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(16, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(22, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(34, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(16, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_ENDEAVOR),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_RATTATA

#if P_FAMILY_SPEAROW
static const struct LevelUpMove sSpearowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(18, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(32, MOVE_ROOST),
    LEVEL_UP_MOVE(36, MOVE_DRILL_PECK),
    LEVEL_UP_END
};

static const struct LevelUpMove sFearowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(18, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(36, MOVE_ROOST),
    LEVEL_UP_MOVE(41, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(45, MOVE_DRILL_RUN),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPEAROW

#if P_FAMILY_EKANS
static const struct LevelUpMove sEkansLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_GLARE),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_ACID),
    LEVEL_UP_MOVE(25, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(25, MOVE_SWALLOW),
    LEVEL_UP_MOVE(25, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(28, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(38, MOVE_BELCH),
    LEVEL_UP_MOVE(41, MOVE_HAZE),
    LEVEL_UP_MOVE(44, MOVE_COIL),
    LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sArbokLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_GLARE),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_ACID),
    LEVEL_UP_MOVE(27, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(27, MOVE_SWALLOW),
    LEVEL_UP_MOVE(27, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(32, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(48, MOVE_BELCH),
    LEVEL_UP_MOVE(51, MOVE_HAZE),
    LEVEL_UP_MOVE(56, MOVE_COIL),
    LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_EKANS

#if P_FAMILY_PIKACHU
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sPichuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(12, MOVE_NUZZLE),
    LEVEL_UP_MOVE(16, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(20, MOVE_CHARM),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sPikachuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(16, MOVE_FEINT),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(44, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sRaichuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_DISCHARGE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYCHIC),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_DISCHARGE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_PIKACHU

#if P_FAMILY_SANDSHREW
static const struct LevelUpMove sSandshrewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 3, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(27, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSandslashLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(26, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(31, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(41, MOVE_DIG),
    LEVEL_UP_MOVE(46, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(51, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(56, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 3, MOVE_MIST),
    LEVEL_UP_MOVE( 6, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(18, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(36, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_HAIL),
    LEVEL_UP_MOVE(45, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_HAIL),
    LEVEL_UP_MOVE( 1, MOVE_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_SANDSHREW

#if P_FAMILY_NIDORAN
static const struct LevelUpMove sNidoranFLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_SCRATCH),
    LEVEL_UP_MOVE(10, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(30, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_TOXIC),
    LEVEL_UP_MOVE(45, MOVE_FLATTER),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidorinaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(22, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(29, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(36, MOVE_BITE),
    LEVEL_UP_MOVE(43, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(50, MOVE_TOXIC),
    LEVEL_UP_MOVE(57, MOVE_FLATTER),
    LEVEL_UP_MOVE(64, MOVE_CRUNCH),
    LEVEL_UP_MOVE(71, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidoranMLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_PECK),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(30, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(35, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_TOXIC),
    LEVEL_UP_MOVE(45, MOVE_FLATTER),
    LEVEL_UP_MOVE(50, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(55, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidorinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(22, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(29, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(36, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(43, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(50, MOVE_TOXIC),
    LEVEL_UP_MOVE(57, MOVE_FLATTER),
    LEVEL_UP_MOVE(64, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(71, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNidokingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_END
};
#endif //P_FAMILY_NIDORAN

#if P_FAMILY_CLEFAIRY
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sCleffaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 4, MOVE_SING),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(16, MOVE_ENCORE),
    LEVEL_UP_MOVE(20, MOVE_CHARM),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sClefairyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 8, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(12, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(16, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(20, MOVE_METRONOME),
    LEVEL_UP_MOVE(24, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(28, MOVE_GRAVITY),
    LEVEL_UP_MOVE(32, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(36, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(40, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(44, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(48, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sClefableLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_METRONOME),
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 1, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLEFAIRY

#if P_FAMILY_VULPIX
static const struct LevelUpMove sVulpixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_DISABLE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_SPITE),
    LEVEL_UP_MOVE(16, MOVE_INCINERATE),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(40, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(44, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(48, MOVE_INFERNO),
    LEVEL_UP_MOVE(52, MOVE_GRUDGE),
    LEVEL_UP_MOVE(56, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sNinetalesLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_INFERNO),
    LEVEL_UP_MOVE( 1, MOVE_GRUDGE),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_DISABLE),
    LEVEL_UP_MOVE( 8, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(12, MOVE_SPITE),
    LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(32, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(40, MOVE_MIST),
    LEVEL_UP_MOVE(44, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(48, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE(52, MOVE_GRUDGE),
    LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 1, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_GRUDGE),
    LEVEL_UP_MOVE( 1, MOVE_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_VULPIX

#if P_FAMILY_JIGGLYPUFF
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(16, MOVE_DISABLE),
    LEVEL_UP_MOVE(20, MOVE_CHARM),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_COVET),
    LEVEL_UP_MOVE(12, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(12, MOVE_SWALLOW),
    LEVEL_UP_MOVE(12, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_REST),
    LEVEL_UP_MOVE(24, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(28, MOVE_MIMIC),
    LEVEL_UP_MOVE(32, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(36, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 1, MOVE_ROUND),
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_MIMIC),
    LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_END
};
#endif //P_FAMILY_JIGGLYPUFF

#if P_FAMILY_ZUBAT
static const struct LevelUpMove sZubatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(15, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(30, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_HAZE),
    LEVEL_UP_MOVE(40, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(45, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(50, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(55, MOVE_LEECH_LIFE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolbatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(15, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(34, MOVE_BITE),
    LEVEL_UP_MOVE(41, MOVE_HAZE),
    LEVEL_UP_MOVE(48, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(55, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(62, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(69, MOVE_LEECH_LIFE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sCrobatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE( 1, MOVE_TAILWIND),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(15, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(27, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(34, MOVE_BITE),
    LEVEL_UP_MOVE(41, MOVE_HAZE),
    LEVEL_UP_MOVE(48, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(55, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(62, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(69, MOVE_LEECH_LIFE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_ZUBAT

#if P_FAMILY_ODDISH
static const struct LevelUpMove sOddishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 4, MOVE_ACID),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_TOXIC),
    LEVEL_UP_MOVE(28, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(32, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(36, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(40, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGloomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(16, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(26, MOVE_TOXIC),
    LEVEL_UP_MOVE(32, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(38, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(44, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(50, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVileplumeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sBellossomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_ODDISH

#if P_FAMILY_PARAS
static const struct LevelUpMove sParasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(11, MOVE_ABSORB),
    LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(22, MOVE_SPORE),
    LEVEL_UP_MOVE(27, MOVE_SLASH),
    LEVEL_UP_MOVE(33, MOVE_GROWTH),
    LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(49, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(54, MOVE_X_SCISSOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sParasectLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 6, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(11, MOVE_ABSORB),
    LEVEL_UP_MOVE(17, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(22, MOVE_SPORE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_GROWTH),
    LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(51, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(59, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(66, MOVE_X_SCISSOR),
    LEVEL_UP_END
};
#endif //P_FAMILY_PARAS

#if P_FAMILY_VENONAT
static const struct LevelUpMove sVenonatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(11, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(41, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(47, MOVE_PSYCHIC),
    LEVEL_UP_END
};

static const struct LevelUpMove sVenomothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(11, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(37, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(47, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(55, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(59, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(63, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_VENONAT

#if P_FAMILY_DIGLETT
static const struct LevelUpMove sDiglettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(28, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(32, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDugtrioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(36, MOVE_DIG),
    LEVEL_UP_MOVE(42, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_FISSURE),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(28, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(32, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(30, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(36, MOVE_DIG),
    LEVEL_UP_MOVE(42, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_DIGLETT

#if P_FAMILY_MEOWTH
static const struct LevelUpMove sMeowthLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_FEINT),
    LEVEL_UP_MOVE( 8, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(44, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPersianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_SLASH),
    LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_FEINT),
    LEVEL_UP_MOVE( 8, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(44, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_QUASH),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS

#if P_GALARIAN_FORMS
static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 8, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(32, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(44, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE(12, MOVE_PAY_DAY),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_SLASH),
    LEVEL_UP_MOVE(48, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_MEOWTH

#if P_FAMILY_PSYDUCK
static const struct LevelUpMove sPsyduckLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 3, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(27, MOVE_SOAK),
    LEVEL_UP_MOVE(30, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(34, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(39, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolduckLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(27, MOVE_SOAK),
    LEVEL_UP_MOVE(30, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(45, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_PSYDUCK

#if P_FAMILY_MANKEY
static const struct LevelUpMove sMankeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(15, MOVE_RETALIATE),
    LEVEL_UP_MOVE(19, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(29, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(33, MOVE_THRASH),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(47, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(50, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(15, MOVE_RETALIATE),
    LEVEL_UP_MOVE(19, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(35, MOVE_THRASH),
    LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(44, MOVE_SCREECH),
    LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(53, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 8, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(17, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(26, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_THRASH),
    LEVEL_UP_MOVE(35, MOVE_RAGE_FIST),
    LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(44, MOVE_SCREECH),
    LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(53, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_MANKEY

#if P_FAMILY_GROWLITHE
static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(16, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(28, MOVE_RETALIATE),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(44, MOVE_ROAR),
    LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(52, MOVE_REVERSAL),
    LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sArcanineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_BURN_UP),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_RETALIATE),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(29, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(29, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_RAGING_FURY),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_GROWLITHE

#if P_FAMILY_POLIWAG
static const struct LevelUpMove sPoliwagLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 6, MOVE_POUND),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(30, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(56, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SUBMISSION),
    LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
    LEVEL_UP_MOVE( 1, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE( 1, MOVE_MIND_READER),
    LEVEL_UP_MOVE( 1, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sPolitoedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BOUNCE),
    LEVEL_UP_MOVE( 1, MOVE_BOUNCE),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_POLIWAG

#if P_FAMILY_ABRA
static const struct LevelUpMove sAbraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKadabraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 5, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(10, MOVE_REFLECT),
    LEVEL_UP_MOVE(15, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(20, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(25, MOVE_RECOVER),
    LEVEL_UP_MOVE(30, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(50, MOVE_CALM_MIND),
    LEVEL_UP_END
};

static const struct LevelUpMove sAlakazamLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_KINESIS),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 5, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(10, MOVE_REFLECT),
    LEVEL_UP_MOVE(15, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(20, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(25, MOVE_RECOVER),
    LEVEL_UP_MOVE(30, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(50, MOVE_CALM_MIND),
    LEVEL_UP_END
};
#endif //P_FAMILY_ABRA

#if P_FAMILY_MACHOP
static const struct LevelUpMove sMachopLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_REVENGE),
    LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(29, MOVE_STRENGTH),
    LEVEL_UP_MOVE(32, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(36, MOVE_BULK_UP),
    LEVEL_UP_MOVE(40, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(44, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(48, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMachokeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(31, MOVE_STRENGTH),
    LEVEL_UP_MOVE(36, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(42, MOVE_BULK_UP),
    LEVEL_UP_MOVE(48, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(60, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMachampLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE(12, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(31, MOVE_STRENGTH),
    LEVEL_UP_MOVE(36, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(42, MOVE_BULK_UP),
    LEVEL_UP_MOVE(48, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(60, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MACHOP

#if P_FAMILY_BELLSPROUT
static const struct LevelUpMove sBellsproutLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(11, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(23, MOVE_ACID),
    LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(39, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(41, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(47, MOVE_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(11, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(24, MOVE_ACID),
    LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(39, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(44, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(47, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(54, MOVE_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sVictreebelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BELLSPROUT

#if P_FAMILY_TENTACOOL
static const struct LevelUpMove sTentacoolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_ACID),
    LEVEL_UP_MOVE( 8, MOVE_WRAP),
    LEVEL_UP_MOVE(12, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(36, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(40, MOVE_SURF),
    LEVEL_UP_MOVE(44, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sTentacruelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE(12, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(16, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(46, MOVE_SURF),
    LEVEL_UP_MOVE(52, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_TENTACOOL

#if P_FAMILY_GEODUDE
static const struct LevelUpMove sGeodudeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_SANDSTORM),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_HARDEN),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGravelerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_SANDSTORM),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_HARDEN),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolemLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_SANDSTORM),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_HARDEN),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(34, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(10, MOVE_STEAMROLLER),
    LEVEL_UP_MOVE(12, MOVE_SPARK),
    LEVEL_UP_MOVE(16, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_GEODUDE

#if P_FAMILY_PONYTA
static const struct LevelUpMove sPonytaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_INFERNO),
    LEVEL_UP_MOVE(50, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sRapidashLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SMART_STRIKE),
    LEVEL_UP_MOVE( 1, MOVE_SMART_STRIKE),
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_INFERNO),
    LEVEL_UP_MOVE(56, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(55, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(63, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_PONYTA

#if P_FAMILY_SLOWPOKE
static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlowbroLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(41, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(46, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(51, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sSlowkingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

#if P_GALARIAN_FORMS
static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 9, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_SLOWPOKE

#if P_FAMILY_MAGNEMITE
static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(16, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(32, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(44, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(48, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(52, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagnetonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(16, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(34, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(46, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(58, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(12, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(16, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(34, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(46, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(58, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MAGNEMITE

#if P_FAMILY_FARFETCHD
static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_CUT),
    LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(25, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(35, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(40, MOVE_SLASH),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(60, MOVE_AGILITY),
    LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(25, MOVE_DETECT),
    LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(35, MOVE_DEFOG),
    LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_SLAM),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(25, MOVE_DETECT),
    LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(35, MOVE_DEFOG),
    LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_SLAM),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_FARFETCHD

#if P_FAMILY_DODUO
static const struct LevelUpMove sDoduoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(26, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_UPROAR),
    LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_LUNGE),
    LEVEL_UP_MOVE(43, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(47, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sDodrioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_LEER),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(26, MOVE_AGILITY),
    LEVEL_UP_MOVE(29, MOVE_UPROAR),
    LEVEL_UP_MOVE(34, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_LUNGE),
    LEVEL_UP_MOVE(47, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(52, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(56, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DODUO

#if P_FAMILY_SEEL
static const struct LevelUpMove sSeelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_ENCORE),
    LEVEL_UP_MOVE(17, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(21, MOVE_REST),
    LEVEL_UP_MOVE(23, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_DIVE),
    LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(51, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(53, MOVE_HAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sDewgongLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(11, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(13, MOVE_ENCORE),
    LEVEL_UP_MOVE(17, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(21, MOVE_REST),
    LEVEL_UP_MOVE(23, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(31, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(39, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_DIVE),
    LEVEL_UP_MOVE(49, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(55, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(61, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(65, MOVE_HAIL),
    LEVEL_UP_END
};
#endif //P_FAMILY_SEEL

#if P_FAMILY_GRIMER
static const struct LevelUpMove sGrimerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SLUDGE),
    LEVEL_UP_MOVE(18, MOVE_SMOG),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(46, MOVE_BELCH),
    LEVEL_UP_MOVE(48, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sMukLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SLUDGE),
    LEVEL_UP_MOVE(18, MOVE_SMOG),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(52, MOVE_BELCH),
    LEVEL_UP_MOVE(57, MOVE_MEMENTO),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(18, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(46, MOVE_BELCH),
    LEVEL_UP_MOVE(48, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(18, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(21, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(26, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(52, MOVE_BELCH),
    LEVEL_UP_MOVE(57, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_GRIMER

#if P_FAMILY_SHELLDER
static const struct LevelUpMove sShellderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 8, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(12, MOVE_LEER),
    LEVEL_UP_MOVE(16, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(20, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(28, MOVE_PROTECT),
    LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCloysterLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHELLDER

#if P_FAMILY_GASTLY
static const struct LevelUpMove sGastlyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 8, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(12, MOVE_PAYBACK),
    LEVEL_UP_MOVE(16, MOVE_SPITE),
    LEVEL_UP_MOVE(20, MOVE_CURSE),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(48, MOVE_DREAM_EATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sHaunterLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(12, MOVE_PAYBACK),
    LEVEL_UP_MOVE(16, MOVE_SPITE),
    LEVEL_UP_MOVE(20, MOVE_CURSE),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(60, MOVE_DREAM_EATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGengarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(12, MOVE_PAYBACK),
    LEVEL_UP_MOVE(16, MOVE_SPITE),
    LEVEL_UP_MOVE(20, MOVE_CURSE),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(60, MOVE_DREAM_EATER),
    LEVEL_UP_END
};
#endif //P_FAMILY_GASTLY

#if P_FAMILY_ONIX
static const struct LevelUpMove sOnixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 4, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_CURSE),
    LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(32, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(36, MOVE_SLAM),
    LEVEL_UP_MOVE(40, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(44, MOVE_DIG),
    LEVEL_UP_MOVE(48, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(52, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sSteelixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 4, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 8, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_CURSE),
    LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(32, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(36, MOVE_SLAM),
    LEVEL_UP_MOVE(40, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(44, MOVE_DIG),
    LEVEL_UP_MOVE(48, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(52, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_MAGNET_RISE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_ONIX

#if P_FAMILY_DROWZEE
static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 5, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(29, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(29, MOVE_MIND_READER),
    LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(57, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHypnoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_DISABLE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(29, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(29, MOVE_MIND_READER),
    LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(41, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(53, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(57, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_DROWZEE

#if P_FAMILY_KRABBY
static const struct LevelUpMove sKrabbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_STOMP),
    LEVEL_UP_MOVE(29, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(36, MOVE_SLAM),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(44, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(48, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKinglerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_STOMP),
    LEVEL_UP_MOVE(31, MOVE_FLAIL),
    LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(42, MOVE_SLAM),
    LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(54, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(60, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_KRABBY

#if P_FAMILY_VOLTORB
static const struct LevelUpMove sVoltorbLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 9, MOVE_SPARK),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_SCREECH),
    LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(37, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(41, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(46, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sElectrodeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 9, MOVE_SPARK),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_SCREECH),
    LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(29, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(36, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(41, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(47, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(54, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(58, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(37, MOVE_THUNDER),
    LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};

static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(37, MOVE_THUNDER),
    LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST),
    LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_VOLTORB

#if P_FAMILY_EXEGGCUTE
static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 5, MOVE_REFLECT),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_CONFUSION),
    LEVEL_UP_MOVE(25, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(30, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(40, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(45, MOVE_UPROAR),
    LEVEL_UP_MOVE(50, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sExeggutorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_EXEGGCUTE

#if P_FAMILY_CUBONE
static const struct LevelUpMove sCuboneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_RETALIATE),
    LEVEL_UP_MOVE(20, MOVE_FLING),
    LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(29, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(36, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(40, MOVE_BONEMERANG),
    LEVEL_UP_MOVE(44, MOVE_THRASH),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMarowakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_RETALIATE),
    LEVEL_UP_MOVE(20, MOVE_FLING),
    LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(31, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE(36, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(42, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(48, MOVE_BONEMERANG),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

#if P_ALOLAN_FORMS
static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_BONE),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_RETALIATE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(16, MOVE_HEX),
    LEVEL_UP_MOVE(20, MOVE_FLING),
    LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(31, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE(36, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(42, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(48, MOVE_BONEMERANG),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_ALOLAN_FORMS
#endif //P_FAMILY_CUBONE

#if P_FAMILY_HITMONS
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sTyrogueLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE( 1, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 8, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(12, MOVE_ENDURE),
    LEVEL_UP_MOVE(16, MOVE_REVENGE),
    LEVEL_UP_MOVE(21, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(24, MOVE_BLAZE_KICK),
    LEVEL_UP_MOVE(28, MOVE_MIND_READER),
    LEVEL_UP_MOVE(32, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(40, MOVE_REVERSAL),
    LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_END
};

static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 8, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(16, MOVE_REVENGE),
    LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(40, MOVE_COUNTER),
    LEVEL_UP_MOVE(44, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sHitmontopLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TRIPLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_TRIPLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(16, MOVE_REVENGE),
    LEVEL_UP_MOVE(21, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(40, MOVE_COUNTER),
    LEVEL_UP_MOVE(44, MOVE_ENDEAVOR),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_HITMONS

#if P_FAMILY_LICKITUNG
static const struct LevelUpMove sLickitungLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 6, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(18, MOVE_WRAP),
    LEVEL_UP_MOVE(24, MOVE_DISABLE),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(42, MOVE_SCREECH),
    LEVEL_UP_MOVE(48, MOVE_SLAM),
    LEVEL_UP_MOVE(54, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(60, MOVE_BELLY_DRUM),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sLickilickyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(18, MOVE_WRAP),
    LEVEL_UP_MOVE(24, MOVE_DISABLE),
    LEVEL_UP_MOVE(30, MOVE_STOMP),
    LEVEL_UP_MOVE(36, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(42, MOVE_SCREECH),
    LEVEL_UP_MOVE(48, MOVE_SLAM),
    LEVEL_UP_MOVE(54, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(60, MOVE_BELLY_DRUM),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_LICKITUNG

#if P_FAMILY_KOFFING
static const struct LevelUpMove sKoffingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SLUDGE),
    LEVEL_UP_MOVE(24, MOVE_HAZE),
    LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_BELCH),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(48, MOVE_MEMENTO),
    LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sWeezingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SLUDGE),
    LEVEL_UP_MOVE(24, MOVE_HAZE),
    LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(38, MOVE_TOXIC),
    LEVEL_UP_MOVE(44, MOVE_BELCH),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(56, MOVE_MEMENTO),
    LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM),
    LEVEL_UP_MOVE( 1, MOVE_DEFOG),
    LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SLUDGE),
    LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(38, MOVE_TOXIC),
    LEVEL_UP_MOVE(44, MOVE_BELCH),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(56, MOVE_MEMENTO),
    LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_KOFFING

#if P_FAMILY_RHYHORN
static const struct LevelUpMove sRhyhornLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(10, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_STOMP),
    LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(35, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(60, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sRhydonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_STOMP),
    LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(35, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(61, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(68, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_STOMP),
    LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(35, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(61, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(68, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(75, MOVE_ROCK_WRECKER),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_RHYHORN

#if P_FAMILY_CHANSEY
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sHappinyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(12, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(16, MOVE_COVET),
    LEVEL_UP_MOVE(20, MOVE_CHARM),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sChanseyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_SING),
    LEVEL_UP_MOVE(20, MOVE_FLING),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_SOFT_BOILED),
    LEVEL_UP_MOVE(48, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(52, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sBlisseyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_SING),
    LEVEL_UP_MOVE(20, MOVE_FLING),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_SOFT_BOILED),
    LEVEL_UP_MOVE(48, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(52, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_CHANSEY

#if P_FAMILY_TANGELA
static const struct LevelUpMove sTangelaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(40, MOVE_SLAM),
    LEVEL_UP_MOVE(44, MOVE_TICKLE),
    LEVEL_UP_MOVE(48, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(52, MOVE_INGRAIN),
    LEVEL_UP_MOVE(56, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sTangrowthLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(20, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(40, MOVE_SLAM),
    LEVEL_UP_MOVE(44, MOVE_TICKLE),
    LEVEL_UP_MOVE(48, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(52, MOVE_INGRAIN),
    LEVEL_UP_MOVE(56, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_TANGELA

#if P_FAMILY_KANGASKHAN
static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(16, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_ENDURE),
    LEVEL_UP_MOVE(44, MOVE_REVERSAL),
    LEVEL_UP_MOVE(48, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(52, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KANGASKHAN

#if P_FAMILY_HORSEA
static const struct LevelUpMove sHorseaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(10, MOVE_TWISTER),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(35, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeadraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(58, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(65, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sKingdraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(58, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(65, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_HORSEA

#if P_FAMILY_GOLDEEN
static const struct LevelUpMove sGoldeenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(10, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(30, MOVE_FLAIL),
    LEVEL_UP_MOVE(35, MOVE_WATERFALL),
    LEVEL_UP_MOVE(40, MOVE_SOAK),
    LEVEL_UP_MOVE(45, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(50, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeakingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(30, MOVE_FLAIL),
    LEVEL_UP_MOVE(37, MOVE_WATERFALL),
    LEVEL_UP_MOVE(44, MOVE_SOAK),
    LEVEL_UP_MOVE(51, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(58, MOVE_HORN_DRILL),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOLDEEN

#if P_FAMILY_STARYU
static const struct LevelUpMove sStaryuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(12, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(16, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(28, MOVE_BRINE),
    LEVEL_UP_MOVE(32, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(36, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(44, MOVE_SURF),
    LEVEL_UP_MOVE(48, MOVE_RECOVER),
    LEVEL_UP_MOVE(52, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sStarmieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 1, MOVE_BRINE),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC),
    LEVEL_UP_MOVE( 1, MOVE_SURF),
    LEVEL_UP_MOVE( 1, MOVE_RECOVER),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_END
};
#endif //P_FAMILY_STARYU

#if P_FAMILY_MR_MIME
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMimeJrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 4, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 8, MOVE_ENCORE),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_RECYCLE),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_MIMIC),
    LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(36, MOVE_REFLECT),
    LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sMrMimeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_RECYCLE),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_MIMIC),
    LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(36, MOVE_REFLECT),
    LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_MIMIC),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(20, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMrRimeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_MIMIC),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(20, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_MR_MIME

#if P_FAMILY_SCYTHER
static const struct LevelUpMove sScytherLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(12, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sScizorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(12, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(48, MOVE_SWORDS_DANCE),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

#if P_GEN_8_CROSS_EVOS
static const struct LevelUpMove sKleavorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND),
    LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(18, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(29, MOVE_STONE_AXE),
    LEVEL_UP_MOVE(34, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_GEN_8_CROSS_EVOS
#endif //P_FAMILY_SCYTHER

#if P_FAMILY_JYNX
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sSmoochumLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 8, MOVE_COPYCAT),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_COVET),
    LEVEL_UP_MOVE(20, MOVE_SING),
    LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(36, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(40, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(44, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(48, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sJynxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_COVET),
    LEVEL_UP_MOVE(20, MOVE_SING),
    LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_LOVELY_KISS),
    LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(52, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(58, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_JYNX

#if P_FAMILY_ELECTABUZZ
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sElekidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 8, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(12, MOVE_SWIFT),
    LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(33, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(43, MOVE_THUNDER),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_SWIFT),
    LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(46, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(58, MOVE_THUNDER),
    LEVEL_UP_MOVE(64, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sElectivireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_SWIFT),
    LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(46, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(58, MOVE_THUNDER),
    LEVEL_UP_MOVE(64, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_ELECTABUZZ

#if P_FAMILY_MAGMAR
#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sMagbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(36, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(44, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

static const struct LevelUpMove sMagmarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(40, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMagmortarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(16, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(40, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MAGMAR

#if P_FAMILY_PINSIR
static const struct LevelUpMove sPinsirLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 8, MOVE_BIND),
    LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(16, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_STORM_THROW),
    LEVEL_UP_MOVE(24, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(28, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(32, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(36, MOVE_STRENGTH),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(44, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(48, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(52, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_PINSIR

#if P_FAMILY_TAUROS
static const struct LevelUpMove sTaurosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

#if P_PALDEAN_FORMS
static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(15, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_RAGING_BULL),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_RAGING_BULL),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_RAGING_BULL),
    LEVEL_UP_MOVE(40, MOVE_REST),
    LEVEL_UP_MOVE(45, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_PALDEAN_FORMS
#endif //P_FAMILY_TAUROS

#if P_FAMILY_MAGIKARP
static const struct LevelUpMove sMagikarpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sGyaradosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 4, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 8, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(12, MOVE_BRINE),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(21, MOVE_WATERFALL),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(44, MOVE_HURRICANE),
    LEVEL_UP_MOVE(48, MOVE_THRASH),
    LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAGIKARP

#if P_FAMILY_LAPRAS
static const struct LevelUpMove sLaprasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_SING),
    LEVEL_UP_MOVE(10, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(20, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(30, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(35, MOVE_BRINE),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(45, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(50, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(60, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(65, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_LAPRAS

#if P_FAMILY_DITTO
static const struct LevelUpMove sDittoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_DITTO

#if P_FAMILY_EEVEE
static const struct LevelUpMove sEeveeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_BITE),
    LEVEL_UP_MOVE(30, MOVE_COPYCAT),
    LEVEL_UP_MOVE(35, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_CHARM),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sVaporeonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_HAZE),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(30, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(35, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(45, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sJolteonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(30, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_THUNDER),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlareonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_SMOG),
    LEVEL_UP_MOVE(25, MOVE_BITE),
    LEVEL_UP_MOVE(30, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(40, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(45, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(50, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sEspeonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(35, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sUmbreonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SNARL),
    LEVEL_UP_MOVE( 1, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_SNARL),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(35, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_SCREECH),
    LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_GEN_2_CROSS_EVOS

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sLeafeonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(30, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(35, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGlaceonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(25, MOVE_BITE),
    LEVEL_UP_MOVE(30, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(35, MOVE_HAIL),
    LEVEL_UP_MOVE(40, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(45, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(50, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

#if P_GEN_6_CROSS_EVOS
static const struct LevelUpMove sSylveonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(30, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(35, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(45, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(50, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_GEN_6_CROSS_EVOS
#endif //P_FAMILY_EEVEE

#if P_FAMILY_PORYGON
static const struct LevelUpMove sPorygonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
    LEVEL_UP_MOVE( 5, MOVE_RECYCLE),
    LEVEL_UP_MOVE(10, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_CONVERSION_2),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(35, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(55, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GEN_2_CROSS_EVOS
static const struct LevelUpMove sPorygon2LevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_CONVERSION_2),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(35, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(55, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sPorygonZLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_CONVERSION_2),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(35, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(50, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(55, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_PORYGON

#if P_FAMILY_OMANYTE
static const struct LevelUpMove sOmanyteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(20, MOVE_LEER),
    LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(35, MOVE_BRINE),
    LEVEL_UP_MOVE(41, MOVE_PROTECT),
    LEVEL_UP_MOVE(45, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(50, MOVE_SURF),
    LEVEL_UP_MOVE(55, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sOmastarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(20, MOVE_LEER),
    LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(35, MOVE_BRINE),
    LEVEL_UP_MOVE(43, MOVE_PROTECT),
    LEVEL_UP_MOVE(49, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(56, MOVE_SURF),
    LEVEL_UP_MOVE(63, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(70, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_OMANYTE

#if P_FAMILY_KABUTO
static const struct LevelUpMove sKabutoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_SCRATCH),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_LEER),
    LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(35, MOVE_BRINE),
    LEVEL_UP_MOVE(41, MOVE_PROTECT),
    LEVEL_UP_MOVE(45, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(50, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(55, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKabutopsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_LEER),
    LEVEL_UP_MOVE(25, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(35, MOVE_BRINE),
    LEVEL_UP_MOVE(43, MOVE_PROTECT),
    LEVEL_UP_MOVE(49, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(56, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(63, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(70, MOVE_STONE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_KABUTO

#if P_FAMILY_AERODACTYL
static const struct LevelUpMove sAerodactylLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(25, MOVE_ROAR),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(35, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_AGILITY),
    LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_AERODACTYL

#if P_FAMILY_SNORLAX
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_RECYCLE),
    LEVEL_UP_MOVE(12, MOVE_COVET),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(20, MOVE_SWALLOW),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(32, MOVE_FLING),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(40, MOVE_METRONOME),
    LEVEL_UP_MOVE(44, MOVE_FLAIL),
    LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(52, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_METRONOME),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE(12, MOVE_YAWN),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_REST),
    LEVEL_UP_MOVE(20, MOVE_SNORE),
    LEVEL_UP_MOVE(20, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(40, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(44, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(52, MOVE_BELCH),
    LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNORLAX

#if P_FAMILY_ARTICUNO
static const struct LevelUpMove sArticunoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(10, MOVE_REFLECT),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_TAILWIND),
    LEVEL_UP_MOVE(35, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(40, MOVE_ROOST),
    LEVEL_UP_MOVE(45, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(50, MOVE_HAIL),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_MOVE(60, MOVE_MIND_READER),
    LEVEL_UP_MOVE(65, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(70, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_REFLECT),
    LEVEL_UP_MOVE(15, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_TAILWIND),
    LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE),
    LEVEL_UP_MOVE(50, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_MOVE(60, MOVE_MIND_READER),
    LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_ARTICUNO

#if P_FAMILY_ZAPDOS
static const struct LevelUpMove sZapdosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_CHARGE),
    LEVEL_UP_MOVE(35, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_ROOST),
    LEVEL_UP_MOVE(45, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(50, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(55, MOVE_THUNDER),
    LEVEL_UP_MOVE(60, MOVE_DETECT),
    LEVEL_UP_MOVE(65, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(35, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK),
    LEVEL_UP_MOVE(50, MOVE_BULK_UP),
    LEVEL_UP_MOVE(55, MOVE_COUNTER),
    LEVEL_UP_MOVE(60, MOVE_DETECT),
    LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_ZAPDOS

#if P_FAMILY_MOLTRES
static const struct LevelUpMove sMoltresLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_INCINERATE),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_ROOST),
    LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(50, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_MOVE(60, MOVE_ENDURE),
    LEVEL_UP_MOVE(65, MOVE_BURN_UP),
    LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_PAYBACK),
    LEVEL_UP_MOVE(10, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH),
    LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_MOVE(60, MOVE_ENDURE),
    LEVEL_UP_MOVE(65, MOVE_MEMENTO),
    LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_MOLTRES

#if P_FAMILY_DRATINI
static const struct LevelUpMove sDratiniLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_TWISTER),
    LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(40, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(55, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragonairLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_SLAM),
    LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(46, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(67, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(74, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragoniteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ROOST),
    LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_SLAM),
    LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(39, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(41, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(46, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(53, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRATINI

#if P_FAMILY_MEWTWO
static const struct LevelUpMove sMewtwoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(16, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(32, MOVE_AMNESIA),
    LEVEL_UP_MOVE(40, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(56, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(56, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(64, MOVE_MIST),
    LEVEL_UP_MOVE(72, MOVE_PSYSTRIKE),
    LEVEL_UP_MOVE(80, MOVE_RECOVER),
    LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MEWTWO

#if P_FAMILY_MEW
static const struct LevelUpMove sMewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE(10, MOVE_AMNESIA),
    LEVEL_UP_MOVE(20, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(40, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(60, MOVE_METRONOME),
    LEVEL_UP_MOVE(70, MOVE_IMPRISON),
    LEVEL_UP_MOVE(80, MOVE_TRANSFORM),
    LEVEL_UP_MOVE(90, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(100, MOVE_PSYCHIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_MEW

#if P_FAMILY_CHIKORITA
static const struct LevelUpMove sChikoritaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(17, MOVE_REFLECT),
    LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(23, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(39, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(42, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sBayleefLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(18, MOVE_REFLECT),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(26, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(54, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeganiumLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 6, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 9, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(18, MOVE_REFLECT),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(26, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(34, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(46, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(54, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(60, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(66, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(70, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHIKORITA

#if P_FAMILY_CYNDAQUIL
static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(22, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(37, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(46, MOVE_INFERNO),
    LEVEL_UP_MOVE(49, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(58, MOVE_BURN_UP),
    LEVEL_UP_MOVE(64, MOVE_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuilavaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(53, MOVE_INFERNO),
    LEVEL_UP_MOVE(57, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(64, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(68, MOVE_BURN_UP),
    LEVEL_UP_MOVE(75, MOVE_ERUPTION),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ERUPTION),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(31, MOVE_SWIFT),
    LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_INFERNO),
    LEVEL_UP_MOVE(61, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(69, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(74, MOVE_BURN_UP),
    LEVEL_UP_MOVE(82, MOVE_ERUPTION),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(25, MOVE_SWIFT),
    LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE),
    LEVEL_UP_MOVE(43, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_CYNDAQUIL

#if P_FAMILY_TOTODILE
static const struct LevelUpMove sTotodileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(22, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(41, MOVE_THRASH),
    LEVEL_UP_MOVE(43, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCroconawLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(21, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(39, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_SCREECH),
    LEVEL_UP_MOVE(48, MOVE_THRASH),
    LEVEL_UP_MOVE(51, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(57, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(13, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(21, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(45, MOVE_SLASH),
    LEVEL_UP_MOVE(50, MOVE_SCREECH),
    LEVEL_UP_MOVE(58, MOVE_THRASH),
    LEVEL_UP_MOVE(63, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(71, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(76, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_TOTODILE

#if P_FAMILY_SENTRET
static const struct LevelUpMove sSentretLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(19, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(25, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_REST),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(39, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(42, MOVE_REVERSAL),
    LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sFurretLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_COIL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(21, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_REST),
    LEVEL_UP_MOVE(36, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_AMNESIA),
    LEVEL_UP_MOVE(46, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(50, MOVE_REVERSAL),
    LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SENTRET

#if P_FAMILY_HOOTHOOT
static const struct LevelUpMove sHoothootLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_REFLECT),
    LEVEL_UP_MOVE(15, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(18, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(21, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_UPROAR),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(33, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(36, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(39, MOVE_DREAM_EATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sNoctowlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_REFLECT),
    LEVEL_UP_MOVE(15, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(18, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(23, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_UPROAR),
    LEVEL_UP_MOVE(38, MOVE_ROOST),
    LEVEL_UP_MOVE(43, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(48, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(53, MOVE_DREAM_EATER),
    LEVEL_UP_END
};
#endif //P_FAMILY_HOOTHOOT

#if P_FAMILY_LEDYBA
static const struct LevelUpMove sLedybaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_SWIFT),
    LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(12, MOVE_REFLECT),
    LEVEL_UP_MOVE(12, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(19, MOVE_ROOST),
    LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(26, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLedianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_SWIFT),
    LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(12, MOVE_REFLECT),
    LEVEL_UP_MOVE(12, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(15, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE(20, MOVE_ROOST),
    LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(42, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_LEDYBA

#if P_FAMILY_SPINARAK
static const struct LevelUpMove sSpinarakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_INFESTATION),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(22, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(26, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(47, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(50, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(54, MOVE_TOXIC_THREAD),
    LEVEL_UP_END
};

static const struct LevelUpMove sAriadosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_INFESTATION),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(19, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(23, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(41, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(50, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(55, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(58, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(63, MOVE_TOXIC_THREAD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPINARAK

#if P_FAMILY_CHINCHOU
static const struct LevelUpMove sChinchouLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 4, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(32, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(36, MOVE_FLAIL),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sLanturnLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 0, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 0, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_CHARGE),
    LEVEL_UP_MOVE(30, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(42, MOVE_FLAIL),
    LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHINCHOU

#if P_FAMILY_TOGEPI
static const struct LevelUpMove sTogepiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(12, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_METRONOME),
    LEVEL_UP_MOVE(28, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(40, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(44, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(48, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(52, MOVE_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sTogeticLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(12, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_METRONOME),
    LEVEL_UP_MOVE(28, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(40, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(44, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(48, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(52, MOVE_WISH),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sTogekissLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_METRONOME),
    LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE( 1, MOVE_WISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_TOGEPI

#if P_FAMILY_NATU
static const struct LevelUpMove sNatuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(10, MOVE_TELEPORT),
    LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(26, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(30, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(35, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_WISH),
    LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sXatuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TAILWIND),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(28, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(34, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(34, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_WISH),
    LEVEL_UP_MOVE(55, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_NATU

#if P_FAMILY_MAREEP
static const struct LevelUpMove sMareepLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(15, MOVE_CHARGE),
    LEVEL_UP_MOVE(18, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(29, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(39, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(43, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(46, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlaaffyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(16, MOVE_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(34, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(38, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(43, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(47, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(52, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(56, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sAmpharosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(16, MOVE_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(35, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(46, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(51, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(57, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(62, MOVE_THUNDER),
    LEVEL_UP_MOVE(65, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAREEP

#if P_FAMILY_MARILL
#if P_GEN_3_CROSS_EVOS
static const struct LevelUpMove sAzurillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 3, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(12, MOVE_SLAM),
    LEVEL_UP_MOVE(15, MOVE_BOUNCE),
    LEVEL_UP_END
};
#endif //P_GEN_3_CROSS_EVOS

static const struct LevelUpMove sMarillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(12, MOVE_SLAM),
    LEVEL_UP_MOVE(15, MOVE_BOUNCE),
    LEVEL_UP_MOVE(19, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(21, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(24, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(30, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sAzumarillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 6, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(12, MOVE_SLAM),
    LEVEL_UP_MOVE(15, MOVE_BOUNCE),
    LEVEL_UP_MOVE(21, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(30, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_MARILL

#if P_FAMILY_SUDOWOODO
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sBonslyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 4, MOVE_FLAIL),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_BLOCK),
    LEVEL_UP_MOVE(16, MOVE_MIMIC),
    LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(24, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(40, MOVE_COUNTER),
    LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_BLOCK),
    LEVEL_UP_MOVE(16, MOVE_MIMIC),
    LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(24, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(40, MOVE_COUNTER),
    LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(48, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SUDOWOODO

#if P_FAMILY_HOPPIP
static const struct LevelUpMove sHoppipLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(19, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(22, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(31, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(34, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(37, MOVE_U_TURN),
    LEVEL_UP_MOVE(40, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(46, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkiploomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(44, MOVE_U_TURN),
    LEVEL_UP_MOVE(48, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(52, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(56, MOVE_BOUNCE),
    LEVEL_UP_MOVE(60, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sJumpluffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(12, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(14, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(29, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(34, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(39, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(44, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(49, MOVE_U_TURN),
    LEVEL_UP_MOVE(54, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(59, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(64, MOVE_BOUNCE),
    LEVEL_UP_MOVE(69, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_HOPPIP

#if P_FAMILY_AIPOM
static const struct LevelUpMove sAipomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(15, MOVE_TICKLE),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(22, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_FLING),
    LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(43, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sAmbipomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
    LEVEL_UP_MOVE(11, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(15, MOVE_TICKLE),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(22, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_FLING),
    LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(43, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_AIPOM

#if P_FAMILY_SUNKERN
static const struct LevelUpMove sSunkernLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 4, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 7, MOVE_ABSORB),
    LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(43, MOVE_SEED_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sSunfloraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 7, MOVE_ABSORB),
    LEVEL_UP_MOVE(10, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(22, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(28, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(34, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(43, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SUNKERN

#if P_FAMILY_YANMA
static const struct LevelUpMove sYanmaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(17, MOVE_DETECT),
    LEVEL_UP_MOVE(22, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(27, MOVE_UPROAR),
    LEVEL_UP_MOVE(30, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(38, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(43, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(46, MOVE_SCREECH),
    LEVEL_UP_MOVE(49, MOVE_U_TURN),
    LEVEL_UP_MOVE(54, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sYanmegaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(17, MOVE_DETECT),
    LEVEL_UP_MOVE(22, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(27, MOVE_UPROAR),
    LEVEL_UP_MOVE(30, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(38, MOVE_FEINT),
    LEVEL_UP_MOVE(43, MOVE_SLASH),
    LEVEL_UP_MOVE(46, MOVE_SCREECH),
    LEVEL_UP_MOVE(49, MOVE_U_TURN),
    LEVEL_UP_MOVE(54, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_YANMA

#if P_FAMILY_WOOPER
static const struct LevelUpMove sWooperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(12, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_HAZE),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(21, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(28, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(32, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuagsireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(12, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_HAZE),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(23, MOVE_YAWN),
    LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(34, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(46, MOVE_TOXIC),
    LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

#if P_PALDEAN_FORMS
static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 4, MOVE_TACKLE),
    LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(21, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(32, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};

static const struct LevelUpMove sClodsireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AMNESIA),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(12, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(21, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(36, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(40, MOVE_TOXIC),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_END
};
#endif //P_PALDEAN_FORMS
#endif //P_FAMILY_WOOPER

#if P_FAMILY_MURKROW
static const struct LevelUpMove sMurkrowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_GUST),
    LEVEL_UP_MOVE(11, MOVE_HAZE),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(31, MOVE_TAUNT),
    LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(41, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(50, MOVE_TAILWIND),
    LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(61, MOVE_TORMENT),
    LEVEL_UP_MOVE(65, MOVE_QUASH),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 1, MOVE_ASSURANCE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_TAILWIND),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE(25, MOVE_SWAGGER),
    LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(55, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(65, MOVE_QUASH),
    LEVEL_UP_MOVE(75, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MURKROW

#if P_FAMILY_MISDREAVUS
static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_SPITE),
    LEVEL_UP_MOVE(10, MOVE_ASTONISH),
    LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(19, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(23, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(32, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(37, MOVE_PAYBACK),
    LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(46, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(50, MOVE_GRUDGE),
    LEVEL_UP_MOVE(55, MOVE_POWER_GEM),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMismagiusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 1, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_GRUDGE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_MISDREAVUS

#if P_FAMILY_UNOWN
static const struct LevelUpMove sUnownLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_UNOWN

#if P_FAMILY_WOBBUFFET
#if P_GEN_3_CROSS_EVOS
static const struct LevelUpMove sWynautLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_AMNESIA),
    LEVEL_UP_END
};
#endif //P_GEN_3_CROSS_EVOS

static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 0, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 0, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 0, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_AMNESIA),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_FAMILY_WOBBUFFET

#if P_FAMILY_GIRAFARIG
static const struct LevelUpMove sGirafarigLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(14, MOVE_STOMP),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sFarigirafLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(14, MOVE_STOMP),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_GIRAFARIG

#if P_FAMILY_PINECO
static const struct LevelUpMove sPinecoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(23, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_PAYBACK),
    LEVEL_UP_MOVE(34, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(42, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sForretressLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 6, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE( 9, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(17, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(20, MOVE_REFLECT),
    LEVEL_UP_MOVE(23, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(32, MOVE_PAYBACK),
    LEVEL_UP_MOVE(36, MOVE_EXPLOSION),
    LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(46, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(60, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(64, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_PINECO

#if P_FAMILY_DUNSPARCE
static const struct LevelUpMove sDunsparceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_GLARE),
    LEVEL_UP_MOVE(16, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(24, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(28, MOVE_YAWN),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_ROOST),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(48, MOVE_COIL),
    LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(12, MOVE_GLARE),
    LEVEL_UP_MOVE(16, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(24, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(28, MOVE_YAWN),
    LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL),
    LEVEL_UP_MOVE(36, MOVE_ROOST),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(44, MOVE_COIL),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(52, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(56, MOVE_HURRICANE),
    LEVEL_UP_MOVE(62, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_DUNSPARCE

#if P_FAMILY_GLIGAR
static const struct LevelUpMove sGligarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(19, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(22, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(27, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sGliscorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_POISON_JAB),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(19, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(22, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(27, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_GLIGAR

#if P_FAMILY_SNUBBULL
static const struct LevelUpMove sSnubbullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_LICK),
    LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_ROAR),
    LEVEL_UP_MOVE(31, MOVE_TAUNT),
    LEVEL_UP_MOVE(37, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(43, MOVE_PAYBACK),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGranbullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_OUTRAGE),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_LICK),
    LEVEL_UP_MOVE(19, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_ROAR),
    LEVEL_UP_MOVE(35, MOVE_TAUNT),
    LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(51, MOVE_PAYBACK),
    LEVEL_UP_MOVE(59, MOVE_CRUNCH),
    LEVEL_UP_MOVE(67, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNUBBULL

#if P_FAMILY_QWILFISH
static const struct LevelUpMove sQwilfishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(12, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(16, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(20, MOVE_SPIKES),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_REVENGE),
    LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(44, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(44, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(52, MOVE_TOXIC),
    LEVEL_UP_MOVE(56, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(60, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(66, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_SPIKES),
    LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE),
    LEVEL_UP_MOVE(21, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(29, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};

static const struct LevelUpMove sOverqwilLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 5, MOVE_SPIKES),
    LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE),
    LEVEL_UP_MOVE(21, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(29, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_QWILFISH

#if P_FAMILY_SHUCKLE
static const struct LevelUpMove sShuckleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(15, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(20, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(25, MOVE_REST),
    LEVEL_UP_MOVE(30, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(35, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(35, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(40, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(45, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(50, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(55, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(65, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHUCKLE

#if P_FAMILY_HERACROSS
static const struct LevelUpMove sHeracrossLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_ENDURE),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_COUNTER),
    LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(45, MOVE_THRASH),
    LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(55, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_HERACROSS

#if P_FAMILY_SNEASEL
static const struct LevelUpMove sSneaselLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(24, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(42, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(48, MOVE_AGILITY),
    LEVEL_UP_MOVE(54, MOVE_SCREECH),
    LEVEL_UP_MOVE(60, MOVE_SLASH),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sWeavileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_ASSURANCE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BEAT_UP),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(18, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(24, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(42, MOVE_FLING),
    LEVEL_UP_MOVE(48, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(54, MOVE_SCREECH),
    LEVEL_UP_MOVE(60, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(66, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

#if P_HISUIAN_FORMS
static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSneaslerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_SNEASEL

#if P_FAMILY_TEDDIURSA
static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_PAYBACK),
    LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(43, MOVE_REST),
    LEVEL_UP_MOVE(43, MOVE_SNORE),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(57, MOVE_FLING),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrsaringLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_PAYBACK),
    LEVEL_UP_MOVE(22, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(29, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(47, MOVE_REST),
    LEVEL_UP_MOVE(49, MOVE_SNORE),
    LEVEL_UP_MOVE(58, MOVE_THRASH),
    LEVEL_UP_MOVE(67, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};

#if P_GEN_8_CROSS_EVOS
static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(11, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_HEADLONG_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(13, MOVE_PAYBACK),
    LEVEL_UP_MOVE(17, MOVE_HARDEN),
    LEVEL_UP_MOVE(22, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(41, MOVE_REST),
    LEVEL_UP_MOVE(41, MOVE_SNORE),
    LEVEL_UP_MOVE(48, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(56, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON),
    LEVEL_UP_END
};
#endif //P_GEN_8_CROSS_EVOS
#endif //P_FAMILY_TEDDIURSA

#if P_FAMILY_SLUGMA
static const struct LevelUpMove sSlugmaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_HARDEN),
    LEVEL_UP_MOVE(15, MOVE_INCINERATE),
    LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(41, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(43, MOVE_RECOVER),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(50, MOVE_EARTH_POWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMagcargoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_HARDEN),
    LEVEL_UP_MOVE(15, MOVE_INCINERATE),
    LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(22, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(29, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(34, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(43, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(47, MOVE_RECOVER),
    LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(58, MOVE_EARTH_POWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_SLUGMA

#if P_FAMILY_SWINUB
static const struct LevelUpMove sSwinubLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(10, MOVE_FLAIL),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(30, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(35, MOVE_AMNESIA),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sPiloswineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(30, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(58, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(65, MOVE_THRASH),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMamoswineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(30, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(37, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(58, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(65, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_SWINUB

#if P_FAMILY_CORSOLA
static const struct LevelUpMove sCorsolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(15, MOVE_ENDURE),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_FLAIL),
    LEVEL_UP_MOVE(35, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(40, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(45, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(50, MOVE_RECOVER),
    LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SPITE),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(40, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(50, MOVE_GRUDGE),
    LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCursolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_SPITE),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(40, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(50, MOVE_GRUDGE),
    LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_CORSOLA

#if P_FAMILY_REMORAID
static const struct LevelUpMove sRemoraidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 4, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(28, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(32, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(40, MOVE_SOAK),
    LEVEL_UP_MOVE(44, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sOctilleryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_OCTAZOOKA),
    LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA),
    LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(30, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(36, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(48, MOVE_SOAK),
    LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_REMORAID

#if P_FAMILY_DELIBIRD
static const struct LevelUpMove sDelibirdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PRESENT),
    LEVEL_UP_MOVE(25, MOVE_DRILL_PECK),
    LEVEL_UP_END
};
#endif //P_FAMILY_DELIBIRD

#if P_FAMILY_MANTINE
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sMantykeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 8, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(36, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(40, MOVE_BOUNCE),
    LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sMantineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE( 1, MOVE_ROOST),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(36, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(40, MOVE_BOUNCE),
    LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_MANTINE

#if P_FAMILY_SKARMORY
static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(16, MOVE_AGILITY),
    LEVEL_UP_MOVE(20, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(28, MOVE_STEEL_WING),
    LEVEL_UP_MOVE(32, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(36, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(44, MOVE_SPIKES),
    LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(52, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKARMORY

#if P_FAMILY_HOUNDOUR
static const struct LevelUpMove sHoundourLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 8, MOVE_SMOG),
    LEVEL_UP_MOVE(13, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(25, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(28, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(32, MOVE_PAYBACK),
    LEVEL_UP_MOVE(37, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(40, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(49, MOVE_CRUNCH),
    LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(56, MOVE_INFERNO),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoundoomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_INFERNO),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 8, MOVE_SMOG),
    LEVEL_UP_MOVE(13, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(26, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(30, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(35, MOVE_PAYBACK),
    LEVEL_UP_MOVE(41, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(65, MOVE_INFERNO),
    LEVEL_UP_END
};
#endif //P_FAMILY_HOUNDOUR

#if P_FAMILY_PHANPY
static const struct LevelUpMove sPhanpyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 6, MOVE_FLAIL),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(19, MOVE_ENDURE),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_CHARM),
    LEVEL_UP_MOVE(37, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDonphanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 6, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(30, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(37, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(43, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_PHANPY

#if P_FAMILY_STANTLER
static const struct LevelUpMove sStantlerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(13, MOVE_STOMP),
    LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(27, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(43, MOVE_LUNGE),
    LEVEL_UP_MOVE(49, MOVE_IMPRISON),
    LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

#if P_GEN_8_CROSS_EVOS
static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(15, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH),
    LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_GEN_8_CROSS_EVOS
#endif //P_FAMILY_STANTLER

#if P_FAMILY_SMEARGLE
static const struct LevelUpMove sSmeargleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKETCH),
    LEVEL_UP_MOVE(11, MOVE_SKETCH),
    LEVEL_UP_MOVE(21, MOVE_SKETCH),
    LEVEL_UP_MOVE(31, MOVE_SKETCH),
    LEVEL_UP_MOVE(41, MOVE_SKETCH),
    LEVEL_UP_MOVE(51, MOVE_SKETCH),
    LEVEL_UP_MOVE(61, MOVE_SKETCH),
    LEVEL_UP_MOVE(71, MOVE_SKETCH),
    LEVEL_UP_MOVE(81, MOVE_SKETCH),
    LEVEL_UP_MOVE(91, MOVE_SKETCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SMEARGLE

#if P_FAMILY_MILTANK
static const struct LevelUpMove sMiltankLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(15, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_MILK_DRINK),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(50, MOVE_CHARM),
    LEVEL_UP_MOVE(55, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_MILTANK

#if P_FAMILY_RAIKOU
static const struct LevelUpMove sRaikouLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_SPARK),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(24, MOVE_ROAR),
    LEVEL_UP_MOVE(30, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(36, MOVE_HOWL),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(54, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(60, MOVE_REFLECT),
    LEVEL_UP_MOVE(66, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(72, MOVE_THUNDER),
    LEVEL_UP_MOVE(78, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_RAIKOU

#if P_FAMILY_ENTEI
static const struct LevelUpMove sEnteiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE),
    LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 6, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(24, MOVE_ROAR),
    LEVEL_UP_MOVE(30, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(54, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(60, MOVE_SWAGGER),
    LEVEL_UP_MOVE(66, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(78, MOVE_ERUPTION),
    LEVEL_UP_END
};
#endif //P_FAMILY_ENTEI

#if P_FAMILY_SUICUNE
static const struct LevelUpMove sSuicuneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 6, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(24, MOVE_ROAR),
    LEVEL_UP_MOVE(30, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(36, MOVE_TAILWIND),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(54, MOVE_SURF),
    LEVEL_UP_MOVE(60, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(66, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(78, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SUICUNE

#if P_FAMILY_LARVITAR
static const struct LevelUpMove sLarvitarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 6, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(33, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_THRASH),
    LEVEL_UP_MOVE(39, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(42, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sPupitarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(37, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(47, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyranitarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 9, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(18, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(21, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(37, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(47, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(52, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(59, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LARVITAR

#if P_FAMILY_LUGIA
static const struct LevelUpMove sLugiaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 9, MOVE_MIST),
    LEVEL_UP_MOVE(18, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(27, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(45, MOVE_RECOVER),
    LEVEL_UP_MOVE(54, MOVE_AEROBLAST),
    LEVEL_UP_MOVE(63, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(81, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(90, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_LUGIA

#if P_FAMILY_HO_OH
static const struct LevelUpMove sHoOhLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 9, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(18, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(27, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(36, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(45, MOVE_RECOVER),
    LEVEL_UP_MOVE(54, MOVE_SACRED_FIRE),
    LEVEL_UP_MOVE(63, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(81, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(90, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE(99, MOVE_BURN_UP),
    LEVEL_UP_END
};
#endif //P_FAMILY_HO_OH

#if P_FAMILY_CELEBI
static const struct LevelUpMove sCelebiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(20, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(30, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(40, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(50, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(60, MOVE_RECOVER),
    LEVEL_UP_MOVE(70, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(80, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(90, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(100, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_CELEBI

#if P_FAMILY_TREECKO
static const struct LevelUpMove sTreeckoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(18, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(27, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(33, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(39, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrovyleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(20, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(35, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(45, MOVE_SCREECH),
    LEVEL_UP_MOVE(50, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(55, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSceptileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(20, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(35, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(42, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(49, MOVE_SCREECH),
    LEVEL_UP_MOVE(56, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(63, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_TREECKO

#if P_FAMILY_TORCHIC
static const struct LevelUpMove sTorchicLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_EMBER),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_BOUNCE),
    LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(36, MOVE_REVERSAL),
    LEVEL_UP_MOVE(39, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sCombuskenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_BOUNCE),
    LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(40, MOVE_BLAZE_KICK),
    LEVEL_UP_MOVE(45, MOVE_BULK_UP),
    LEVEL_UP_MOVE(50, MOVE_REVERSAL),
    LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sBlazikenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_DETECT),
    LEVEL_UP_MOVE(15, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_BOUNCE),
    LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(42, MOVE_BLAZE_KICK),
    LEVEL_UP_MOVE(49, MOVE_BULK_UP),
    LEVEL_UP_MOVE(56, MOVE_REVERSAL),
    LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_TORCHIC

#if P_FAMILY_MUDKIP
static const struct LevelUpMove sMudkipLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_AMNESIA),
    LEVEL_UP_MOVE(30, MOVE_SURF),
    LEVEL_UP_MOVE(33, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(39, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sMarshtompLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE( 1, MOVE_SURF),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_AMNESIA),
    LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(45, MOVE_SCREECH),
    LEVEL_UP_MOVE(50, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwampertLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE( 1, MOVE_SURF),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_AMNESIA),
    LEVEL_UP_MOVE(42, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(49, MOVE_SCREECH),
    LEVEL_UP_MOVE(56, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUDKIP

#if P_FAMILY_POOCHYENA
static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_ROAR),
    LEVEL_UP_MOVE(19, MOVE_SWAGGER),
    LEVEL_UP_MOVE(22, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(25, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(31, MOVE_TAUNT),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_YAWN),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(43, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sMightyenaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SNARL),
    LEVEL_UP_MOVE( 1, MOVE_SNARL),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 4, MOVE_HOWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(13, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_YAWN),
    LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(52, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(56, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};
#endif //P_FAMILY_POOCHYENA

#if P_FAMILY_ZIGZAGOON
static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_COVET),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(21, MOVE_REST),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_FLING),
    LEVEL_UP_MOVE(30, MOVE_FLAIL),
    LEVEL_UP_MOVE(33, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLinooneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_COVET),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_FLING),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_SNARL),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(21, MOVE_REST),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(33, MOVE_TAUNT),
    LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_SNARL),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(38, MOVE_COUNTER),
    LEVEL_UP_MOVE(43, MOVE_TAUNT),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sObstagoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT),
    LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT),
    LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_SUBMISSION),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_SNARL),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(23, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_COUNTER),
    LEVEL_UP_MOVE(49, MOVE_TAUNT),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_ZIGZAGOON

#if P_FAMILY_WURMPLE
static const struct LevelUpMove sWurmpleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_POISON_STING),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSilcoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeautiflyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_ABSORB),
    LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(17, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(27, MOVE_ATTRACT),
    LEVEL_UP_MOVE(30, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(37, MOVE_PROTECT),
    LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCascoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sDustoxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_CONFUSION),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(17, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(20, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(30, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(37, MOVE_PROTECT),
    LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_WURMPLE

#if P_FAMILY_LOTAD
static const struct LevelUpMove sLotadLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_ABSORB),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(38, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(43, MOVE_ENERGY_BALL),
    LEVEL_UP_END
};

static const struct LevelUpMove sLombreLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(43, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(50, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(57, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sLudicoloLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_END
};
#endif //P_FAMILY_LOTAD

#if P_FAMILY_SEEDOT
static const struct LevelUpMove sSeedotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 3, MOVE_ABSORB),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_PAYBACK),
    LEVEL_UP_MOVE(21, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(24, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(27, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(33, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sNuzleafLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(18, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_PAYBACK),
    LEVEL_UP_MOVE(30, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(43, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(50, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(57, MOVE_LEAF_BLADE),
    LEVEL_UP_END
};

static const struct LevelUpMove sShiftryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SEEDOT

#if P_FAMILY_TAILLOW
static const struct LevelUpMove sTaillowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(25, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(33, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(37, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(45, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwellowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(21, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(27, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(39, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(45, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(51, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(57, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAILLOW

#if P_FAMILY_WINGULL
static const struct LevelUpMove sWingullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(35, MOVE_MIST),
    LEVEL_UP_MOVE(40, MOVE_ROOST),
    LEVEL_UP_MOVE(45, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPelipperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_SOAK),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_TAILWIND),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(28, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(28, MOVE_SWALLOW),
    LEVEL_UP_MOVE(28, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(34, MOVE_FLING),
    LEVEL_UP_MOVE(41, MOVE_MIST),
    LEVEL_UP_MOVE(48, MOVE_ROOST),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_WINGULL

#if P_FAMILY_RALTS
static const struct LevelUpMove sRaltsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 3, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(15, MOVE_TELEPORT),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(21, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(24, MOVE_CHARM),
    LEVEL_UP_MOVE(27, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(30, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(33, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(36, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKirliaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(15, MOVE_TELEPORT),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(28, MOVE_CHARM),
    LEVEL_UP_MOVE(33, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(38, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(48, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGardevoirLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(15, MOVE_TELEPORT),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(28, MOVE_WISH),
    LEVEL_UP_MOVE(35, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(42, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(56, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sGalladeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_CALM_MIND),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC),
    LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(12, MOVE_FEINT),
    LEVEL_UP_MOVE(15, MOVE_TELEPORT),
    LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(23, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(28, MOVE_PROTECT),
    LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(49, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(56, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(56, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_RALTS

#if P_FAMILY_SURSKIT
static const struct LevelUpMove sSurskitLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(14, MOVE_SOAK),
    LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_AGILITY),
    LEVEL_UP_MOVE(25, MOVE_MIST),
    LEVEL_UP_MOVE(25, MOVE_HAZE),
    LEVEL_UP_MOVE(30, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(35, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(38, MOVE_STICKY_WEB),
    LEVEL_UP_END
};

static const struct LevelUpMove sMasquerainLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(14, MOVE_SOAK),
    LEVEL_UP_MOVE(17, MOVE_GUST),
    LEVEL_UP_MOVE(22, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(26, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(32, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(38, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SURSKIT

#if P_FAMILY_SHROOMISH
static const struct LevelUpMove sShroomishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(19, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(22, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_GROWTH),
    LEVEL_UP_MOVE(33, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(40, MOVE_SPORE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBreloomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_SPORE),
    LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(19, MOVE_FEINT),
    LEVEL_UP_MOVE(22, MOVE_COUNTER),
    LEVEL_UP_MOVE(28, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(33, MOVE_MIND_READER),
    LEVEL_UP_MOVE(39, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHROOMISH

#if P_FAMILY_SLAKOTH
static const struct LevelUpMove sSlakothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 6, MOVE_ENCORE),
    LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(14, MOVE_REST),
    LEVEL_UP_MOVE(17, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_COVET),
    LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(33, MOVE_FLAIL),
    LEVEL_UP_MOVE(38, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sVigorothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 1, MOVE_AMNESIA),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 6, MOVE_ENCORE),
    LEVEL_UP_MOVE( 9, MOVE_UPROAR),
    LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_ENDURE),
    LEVEL_UP_MOVE(23, MOVE_SLASH),
    LEVEL_UP_MOVE(27, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(33, MOVE_COUNTER),
    LEVEL_UP_MOVE(37, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(43, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlakingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_FLING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_UPROAR),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 6, MOVE_ENCORE),
    LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(14, MOVE_REST),
    LEVEL_UP_MOVE(17, MOVE_AMNESIA),
    LEVEL_UP_MOVE(23, MOVE_COVET),
    LEVEL_UP_MOVE(27, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(33, MOVE_COUNTER),
    LEVEL_UP_MOVE(39, MOVE_FLAIL),
    LEVEL_UP_MOVE(47, MOVE_FLING),
    LEVEL_UP_MOVE(53, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(61, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SLAKOTH

#if P_FAMILY_NINCADA
static const struct LevelUpMove sNincadaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 5, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(15, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(21, MOVE_ABSORB),
    LEVEL_UP_MOVE(25, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(35, MOVE_MIND_READER),
    LEVEL_UP_MOVE(40, MOVE_DIG),
    LEVEL_UP_END
};

static const struct LevelUpMove sNinjaskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SCREECH),
    LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_DIG),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(15, MOVE_AGILITY),
    LEVEL_UP_MOVE(23, MOVE_ABSORB),
    LEVEL_UP_MOVE(29, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(36, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(43, MOVE_MIND_READER),
    LEVEL_UP_MOVE(50, MOVE_SLASH),
    LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(64, MOVE_X_SCISSOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sShedinjaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_GRUDGE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_DIG),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(15, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(23, MOVE_ABSORB),
    LEVEL_UP_MOVE(29, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(36, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(43, MOVE_MIND_READER),
    LEVEL_UP_MOVE(50, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(57, MOVE_SPITE),
    LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_NINCADA

#if P_FAMILY_WHISMUR
static const struct LevelUpMove sWhismurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(10, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(21, MOVE_STOMP),
    LEVEL_UP_MOVE(25, MOVE_ROAR),
    LEVEL_UP_MOVE(30, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(35, MOVE_UPROAR),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLoudredLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(23, MOVE_STOMP),
    LEVEL_UP_MOVE(29, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(43, MOVE_UPROAR),
    LEVEL_UP_MOVE(50, MOVE_SCREECH),
    LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sExploudLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(23, MOVE_STOMP),
    LEVEL_UP_MOVE(29, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(45, MOVE_UPROAR),
    LEVEL_UP_MOVE(54, MOVE_SCREECH),
    LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(72, MOVE_BOOMBURST),
    LEVEL_UP_MOVE(81, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_WHISMUR

#if P_FAMILY_MAKUHITA
static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(10, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(13, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(22, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(34, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_ENDURE),
    LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(43, MOVE_REVERSAL),
    LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sHariyamaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BRINE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(10, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(13, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(22, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(26, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(30, MOVE_DETECT),
    LEVEL_UP_MOVE(34, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(38, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_ENDURE),
    LEVEL_UP_MOVE(46, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(50, MOVE_REVERSAL),
    LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAKUHITA

#if P_FAMILY_NOSEPASS
static const struct LevelUpMove sNosepassLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_BLOCK),
    LEVEL_UP_MOVE(10, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(16, MOVE_REST),
    LEVEL_UP_MOVE(19, MOVE_SPARK),
    LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(25, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(31, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(37, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sProbopassLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 7, MOVE_BLOCK),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(16, MOVE_REST),
    LEVEL_UP_MOVE(19, MOVE_SPARK),
    LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(25, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(31, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(37, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(50, MOVE_BODY_PRESS),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_NOSEPASS

#if P_FAMILY_SKITTY
static const struct LevelUpMove sSkittyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_TACKLE),
    LEVEL_UP_MOVE( 7, MOVE_SING),
    LEVEL_UP_MOVE(10, MOVE_ATTRACT),
    LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_COPYCAT),
    LEVEL_UP_MOVE(22, MOVE_PAYBACK),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(31, MOVE_FACADE),
    LEVEL_UP_MOVE(34, MOVE_COVET),
    LEVEL_UP_MOVE(37, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sDelcattyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_FACADE),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKITTY

#if P_FAMILY_SABLEYE
static const struct LevelUpMove sSableyeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 3, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 6, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 9, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(12, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_DETECT),
    LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_QUASH),
    LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(39, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};
#endif //P_FAMILY_SABLEYE

#if P_FAMILY_MAWILE
static const struct LevelUpMove sMawileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 8, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(16, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(16, MOVE_SWALLOW),
    LEVEL_UP_MOVE(16, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_TAUNT),
    LEVEL_UP_MOVE(44, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAWILE

#if P_FAMILY_ARON
static const struct LevelUpMove sAronLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(12, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(33, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(44, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(52, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_METAL_BURST),
    LEVEL_UP_END
};

static const struct LevelUpMove sLaironLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(12, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(35, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(46, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(52, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(58, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(64, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(76, MOVE_METAL_BURST),
    LEVEL_UP_END
};

static const struct LevelUpMove sAggronLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(12, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(35, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(56, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(64, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(72, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(88, MOVE_METAL_BURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARON

#if P_FAMILY_MEDITITE
static const struct LevelUpMove sMedititeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(12, MOVE_ENDURE),
    LEVEL_UP_MOVE(15, MOVE_FEINT),
    LEVEL_UP_MOVE(17, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(25, MOVE_MIND_READER),
    LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(36, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(39, MOVE_REVERSAL),
    LEVEL_UP_MOVE(41, MOVE_RECOVER),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMedichamLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 4, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(12, MOVE_ENDURE),
    LEVEL_UP_MOVE(15, MOVE_FEINT),
    LEVEL_UP_MOVE(17, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(23, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(25, MOVE_MIND_READER),
    LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(31, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(36, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(42, MOVE_REVERSAL),
    LEVEL_UP_MOVE(47, MOVE_RECOVER),
    LEVEL_UP_MOVE(53, MOVE_COUNTER),
    LEVEL_UP_END
};
#endif //P_FAMILY_MEDITITE

#if P_FAMILY_ELECTRIKE
static const struct LevelUpMove sElectrikeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_HOWL),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(28, MOVE_ROAR),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_CHARGE),
    LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(44, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sManectricLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE(30, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(42, MOVE_CHARGE),
    LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(54, MOVE_THUNDER),
    LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_ELECTRIKE

#if P_FAMILY_PLUSLE
static const struct LevelUpMove sPlusleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 7, MOVE_SPARK),
    LEVEL_UP_MOVE(10, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(16, MOVE_SWIFT),
    LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(22, MOVE_COPYCAT),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(28, MOVE_CHARGE),
    LEVEL_UP_MOVE(31, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(43, MOVE_THUNDER),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_PLUSLE

#if P_FAMILY_MINUN
static const struct LevelUpMove sMinunLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 7, MOVE_SPARK),
    LEVEL_UP_MOVE(10, MOVE_ENCORE),
    LEVEL_UP_MOVE(13, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(16, MOVE_SWIFT),
    LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(22, MOVE_COPYCAT),
    LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(28, MOVE_CHARGE),
    LEVEL_UP_MOVE(31, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(34, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(37, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(43, MOVE_THUNDER),
    LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MINUN

#if P_FAMILY_VOLBEAT_ILLUMISE
static const struct LevelUpMove sVolbeatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(19, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(22, MOVE_TAIL_GLOW),
    LEVEL_UP_MOVE(26, MOVE_ENCORE),
    LEVEL_UP_MOVE(29, MOVE_PROTECT),
    LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_INFESTATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sIllumiseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(19, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(22, MOVE_WISH),
    LEVEL_UP_MOVE(26, MOVE_ENCORE),
    LEVEL_UP_MOVE(29, MOVE_FLATTER),
    LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(47, MOVE_COVET),
    LEVEL_UP_MOVE(50, MOVE_INFESTATION),
    LEVEL_UP_END
};
#endif //P_FAMILY_VOLBEAT_ILLUMISE

#if P_FAMILY_ROSELIA
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sBudewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sRoseliaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE( 5, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(20, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(30, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(35, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(40, MOVE_TOXIC),
    LEVEL_UP_MOVE(45, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(50, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(55, MOVE_INGRAIN),
    LEVEL_UP_MOVE(60, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sRoseradeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_WORRY_SEED),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_ROSELIA

#if P_FAMILY_GULPIN
static const struct LevelUpMove sGulpinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 5, MOVE_YAWN),
    LEVEL_UP_MOVE( 8, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(10, MOVE_SLUDGE),
    LEVEL_UP_MOVE(12, MOVE_AMNESIA),
    LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(20, MOVE_ENCORE),
    LEVEL_UP_MOVE(25, MOVE_TOXIC),
    LEVEL_UP_MOVE(28, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(28, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(28, MOVE_SWALLOW),
    LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(41, MOVE_BELCH),
    LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwalotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_SLUDGE),
    LEVEL_UP_MOVE( 5, MOVE_YAWN),
    LEVEL_UP_MOVE( 8, MOVE_POISON_GAS),
    LEVEL_UP_MOVE(10, MOVE_SLUDGE),
    LEVEL_UP_MOVE(12, MOVE_AMNESIA),
    LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(20, MOVE_ENCORE),
    LEVEL_UP_MOVE(25, MOVE_TOXIC),
    LEVEL_UP_MOVE(30, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(30, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(30, MOVE_SWALLOW),
    LEVEL_UP_MOVE(37, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(49, MOVE_BELCH),
    LEVEL_UP_MOVE(54, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(61, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_GULPIN

#if P_FAMILY_CARVANHA
static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_POISON_FANG),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(44, MOVE_TAKE_DOWN),
    LEVEL_UP_END
};

static const struct LevelUpMove sSharpedoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_AGILITY),
    LEVEL_UP_MOVE(46, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(52, MOVE_TAKE_DOWN),
    LEVEL_UP_END
};
#endif //P_FAMILY_CARVANHA

#if P_FAMILY_WAILMER
static const struct LevelUpMove sWailmerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_MIST),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(30, MOVE_DIVE),
    LEVEL_UP_MOVE(33, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(39, MOVE_REST),
    LEVEL_UP_MOVE(42, MOVE_AMNESIA),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(48, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sWailordLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SOAK),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_MIST),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(27, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(30, MOVE_DIVE),
    LEVEL_UP_MOVE(33, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(39, MOVE_REST),
    LEVEL_UP_MOVE(44, MOVE_AMNESIA),
    LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(54, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};
#endif //P_FAMILY_WAILMER

#if P_FAMILY_NUMEL
static const struct LevelUpMove sNumelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(19, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(26, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(29, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(36, MOVE_YAWN),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCameruptLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE( 1, MOVE_FISSURE),
    LEVEL_UP_MOVE( 1, MOVE_ERUPTION),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 8, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(19, MOVE_AMNESIA),
    LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(26, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(29, MOVE_CURSE),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(39, MOVE_YAWN),
    LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_ERUPTION),
    LEVEL_UP_MOVE(59, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_NUMEL

#if P_FAMILY_TORKOAL
static const struct LevelUpMove sTorkoalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 4, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(12, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(16, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(24, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(44, MOVE_CURSE),
    LEVEL_UP_MOVE(48, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(52, MOVE_AMNESIA),
    LEVEL_UP_MOVE(56, MOVE_INFERNO),
    LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(64, MOVE_ERUPTION),
    LEVEL_UP_END
};
#endif //P_FAMILY_TORKOAL

#if P_FAMILY_SPOINK
static const struct LevelUpMove sSpoinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_GROWL),
    LEVEL_UP_MOVE(14, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(15, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(29, MOVE_REST),
    LEVEL_UP_MOVE(33, MOVE_SNORE),
    LEVEL_UP_MOVE(38, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(40, MOVE_PAYBACK),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(50, MOVE_BOUNCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrumpigLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_GROWL),
    LEVEL_UP_MOVE(14, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(15, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(35, MOVE_SNORE),
    LEVEL_UP_MOVE(42, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(46, MOVE_PAYBACK),
    LEVEL_UP_MOVE(52, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(60, MOVE_BOUNCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPOINK

#if P_FAMILY_SPINDA
static const struct LevelUpMove sSpindaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_COPYCAT),
    LEVEL_UP_MOVE(14, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(19, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(23, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_UPROAR),
    LEVEL_UP_MOVE(41, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPINDA

#if P_FAMILY_TRAPINCH
static const struct LevelUpMove sTrapinchLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(20, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_DIG),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(36, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(48, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVibravaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_DIG),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_FISSURE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(32, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(38, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_UPROAR),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(62, MOVE_BOOMBURST),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlygonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_OUTRAGE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_DIG),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_FISSURE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(32, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(38, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_UPROAR),
    LEVEL_UP_MOVE(60, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(68, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_TRAPINCH

#if P_FAMILY_CACNEA
static const struct LevelUpMove sCacneaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(22, MOVE_INGRAIN),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(30, MOVE_SPIKES),
    LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(46, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(50, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sCacturneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_REVENGE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(19, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(22, MOVE_INGRAIN),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(30, MOVE_SPIKES),
    LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(54, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_FAMILY_CACNEA

#if P_FAMILY_SWABLU
static const struct LevelUpMove sSwabluLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(28, MOVE_SING),
    LEVEL_UP_MOVE(32, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(44, MOVE_PERISH_SONG),
    LEVEL_UP_END
};

static const struct LevelUpMove sAltariaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(28, MOVE_SING),
    LEVEL_UP_MOVE(32, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(44, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(50, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_SWABLU

#if P_FAMILY_ZANGOOSE
static const struct LevelUpMove sZangooseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(19, MOVE_SLASH),
    LEVEL_UP_MOVE(22, MOVE_REVENGE),
    LEVEL_UP_MOVE(26, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(33, MOVE_FACADE),
    LEVEL_UP_MOVE(36, MOVE_DETECT),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_TAUNT),
    LEVEL_UP_MOVE(47, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZANGOOSE

#if P_FAMILY_SEVIPER
static const struct LevelUpMove sSeviperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(14, MOVE_SCREECH),
    LEVEL_UP_MOVE(16, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(19, MOVE_GLARE),
    LEVEL_UP_MOVE(21, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(24, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(31, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(34, MOVE_HAZE),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_BELCH),
    LEVEL_UP_MOVE(44, MOVE_COIL),
    LEVEL_UP_MOVE(46, MOVE_SLUDGE_BOMB),
    LEVEL_UP_END
};
#endif //P_FAMILY_SEVIPER

#if P_FAMILY_LUNATONE
static const struct LevelUpMove sLunatoneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(20, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(30, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(35, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(45, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_LUNATONE

#if P_FAMILY_SOLROCK
static const struct LevelUpMove sSolrockLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(20, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(30, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(35, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(40, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(45, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_SOLROCK

#if P_FAMILY_BARBOACH
static const struct LevelUpMove sBarboachLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_REST),
    LEVEL_UP_MOVE( 6, MOVE_SNORE),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(18, MOVE_AMNESIA),
    LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(31, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(48, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhiscashLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 1, MOVE_SNORE),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(18, MOVE_AMNESIA),
    LEVEL_UP_MOVE(24, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(33, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(56, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BARBOACH

#if P_FAMILY_CORPHISH
static const struct LevelUpMove sCorphishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(24, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(48, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(52, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(24, MOVE_PROTECT),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(34, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(46, MOVE_CRUNCH),
    LEVEL_UP_MOVE(52, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(58, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(64, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CORPHISH

#if P_FAMILY_BALTOY
static const struct LevelUpMove sBaltoyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 3, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(12, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_IMPRISON),
    LEVEL_UP_MOVE(24, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(27, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(30, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(36, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(36, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(39, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(42, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sClaydolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(12, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(18, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_IMPRISON),
    LEVEL_UP_MOVE(24, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(27, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(30, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(33, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(38, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(38, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(43, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(48, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_BALTOY

#if P_FAMILY_LILEEP
static const struct LevelUpMove sLileepLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_ACID),
    LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(12, MOVE_INGRAIN),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_AMNESIA),
    LEVEL_UP_MOVE(32, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(41, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(41, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(41, MOVE_SWALLOW),
    LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL),
    LEVEL_UP_END
};

static const struct LevelUpMove sCradilyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(12, MOVE_INGRAIN),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_AMNESIA),
    LEVEL_UP_MOVE(32, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(43, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(43, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(43, MOVE_SWALLOW),
    LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL),
    LEVEL_UP_END
};
#endif //P_FAMILY_LILEEP

#if P_FAMILY_ANORITH
static const struct LevelUpMove sAnorithLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(12, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(41, MOVE_PROTECT),
    LEVEL_UP_MOVE(44, MOVE_X_SCISSOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sArmaldoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(12, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(43, MOVE_PROTECT),
    LEVEL_UP_MOVE(48, MOVE_X_SCISSOR),
    LEVEL_UP_END
};
#endif //P_FAMILY_ANORITH

#if P_FAMILY_FEEBAS
static const struct LevelUpMove sFeebasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sMiloticLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_TWISTER),
    LEVEL_UP_MOVE(12, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(16, MOVE_ATTRACT),
    LEVEL_UP_MOVE(20, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(28, MOVE_RECOVER),
    LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(36, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(40, MOVE_SURF),
    LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(48, MOVE_COIL),
    LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_FEEBAS

#if P_FAMILY_CASTFORM
static const struct LevelUpMove sCastformLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(20, MOVE_HAIL),
    LEVEL_UP_MOVE(25, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(35, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(35, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(45, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CASTFORM

#if P_FAMILY_KECLEON
static const struct LevelUpMove sKecleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_BIND),
    LEVEL_UP_MOVE( 7, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(10, MOVE_FEINT),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_DISABLE),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_DETECT),
    LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(38, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};
#endif //P_FAMILY_KECLEON

#if P_FAMILY_SHUPPET
static const struct LevelUpMove sShuppetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 4, MOVE_SCREECH),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(10, MOVE_SPITE),
    LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(19, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(22, MOVE_HEX),
    LEVEL_UP_MOVE(26, MOVE_CURSE),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(46, MOVE_GRUDGE),
    LEVEL_UP_MOVE(50, MOVE_TRICK),
    LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBanetteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 4, MOVE_SCREECH),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(10, MOVE_SPITE),
    LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(19, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(22, MOVE_HEX),
    LEVEL_UP_MOVE(26, MOVE_CURSE),
    LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(52, MOVE_GRUDGE),
    LEVEL_UP_MOVE(58, MOVE_TRICK),
    LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHUPPET

#if P_FAMILY_DUSKULL
static const struct LevelUpMove sDuskullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_DISABLE),
    LEVEL_UP_MOVE( 8, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(20, MOVE_PAYBACK),
    LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_HEX),
    LEVEL_UP_MOVE(36, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDusclopsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(20, MOVE_PAYBACK),
    LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_HEX),
    LEVEL_UP_MOVE(36, MOVE_CURSE),
    LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sDusknoirLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(16, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(20, MOVE_PAYBACK),
    LEVEL_UP_MOVE(24, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_HEX),
    LEVEL_UP_MOVE(36, MOVE_CURSE),
    LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_DUSKULL

#if P_FAMILY_TROPIUS
static const struct LevelUpMove sTropiusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 6, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(10, MOVE_STOMP),
    LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(21, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(26, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(41, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_DRAGON_HAMMER),
    LEVEL_UP_MOVE(50, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(61, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_TROPIUS

#if P_FAMILY_CHIMECHO
#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sChinglingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_YAWN),
    LEVEL_UP_MOVE(16, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(19, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS

static const struct LevelUpMove sChimechoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_CONFUSION),
    LEVEL_UP_MOVE(13, MOVE_YAWN),
    LEVEL_UP_MOVE(16, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(27, MOVE_HEAL_BELL),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(37, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(52, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(57, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHIMECHO

#if P_FAMILY_ABSOL
static const struct LevelUpMove sAbsolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(15, MOVE_DETECT),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(35, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(55, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_ABSOL

#if P_FAMILY_SNORUNT
static const struct LevelUpMove sSnoruntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(25, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(30, MOVE_FROST_BREATH),
    LEVEL_UP_MOVE(35, MOVE_BITE),
    LEVEL_UP_MOVE(40, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(45, MOVE_HAIL),
    LEVEL_UP_MOVE(50, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(55, MOVE_CRUNCH),
    LEVEL_UP_MOVE(60, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sGlalieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(25, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(30, MOVE_FROST_BREATH),
    LEVEL_UP_MOVE(35, MOVE_BITE),
    LEVEL_UP_MOVE(40, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(47, MOVE_HAIL),
    LEVEL_UP_MOVE(54, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(61, MOVE_CRUNCH),
    LEVEL_UP_MOVE(68, MOVE_BLIZZARD),
    LEVEL_UP_END
};

#if P_GEN_4_CROSS_EVOS
static const struct LevelUpMove sFroslassLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(25, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(30, MOVE_FROST_BREATH),
    LEVEL_UP_MOVE(35, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(40, MOVE_HAIL),
    LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(54, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(61, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(68, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_SNORUNT

#if P_FAMILY_SPHEAL
static const struct LevelUpMove sSphealLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(16, MOVE_REST),
    LEVEL_UP_MOVE(20, MOVE_SNORE),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(33, MOVE_ENCORE),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_SURF),
    LEVEL_UP_MOVE(44, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(48, MOVE_HAIL),
    LEVEL_UP_MOVE(52, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sSealeoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(16, MOVE_REST),
    LEVEL_UP_MOVE(20, MOVE_SNORE),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(35, MOVE_ENCORE),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_SURF),
    LEVEL_UP_MOVE(52, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(58, MOVE_HAIL),
    LEVEL_UP_MOVE(64, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sWalreinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(12, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(16, MOVE_REST),
    LEVEL_UP_MOVE(20, MOVE_SNORE),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(35, MOVE_ENCORE),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(48, MOVE_SURF),
    LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(64, MOVE_HAIL),
    LEVEL_UP_MOVE(72, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPHEAL

#if P_FAMILY_CLAMPERL
static const struct LevelUpMove sClamperlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHuntailLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 5, MOVE_SCREECH),
    LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(11, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(19, MOVE_BRINE),
    LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(26, MOVE_DIVE),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_COIL),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGorebyssLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE( 5, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE( 9, MOVE_AGILITY),
    LEVEL_UP_MOVE(11, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_AMNESIA),
    LEVEL_UP_MOVE(19, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(23, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(26, MOVE_DIVE),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_COIL),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLAMPERL

#if P_FAMILY_RELICANTH
static const struct LevelUpMove sRelicanthLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_YAWN),
    LEVEL_UP_MOVE(20, MOVE_DIVE),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(40, MOVE_FLAIL),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_RELICANTH

#if P_FAMILY_LUVDISC
static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 4, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_AGILITY),
    LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(13, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_ATTRACT),
    LEVEL_UP_MOVE(22, MOVE_BRINE),
    LEVEL_UP_MOVE(26, MOVE_FLAIL),
    LEVEL_UP_MOVE(31, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(37, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(40, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(42, MOVE_SOAK),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(49, MOVE_SAFEGUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_LUVDISC

#if P_FAMILY_BAGON
static const struct LevelUpMove sBagonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(31, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(40, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(50, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sShelgonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(39, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(46, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(53, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(60, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(67, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSalamenceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLY),
    LEVEL_UP_MOVE( 1, MOVE_FLY),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(39, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(46, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(55, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(64, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BAGON

#if P_FAMILY_BELDUM
static const struct LevelUpMove sBeldumLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMetangLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 0, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(12, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(18, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(42, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(50, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(58, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(66, MOVE_AGILITY),
    LEVEL_UP_MOVE(74, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMetagrossLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(12, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(16, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(34, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(42, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(52, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(62, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(72, MOVE_AGILITY),
    LEVEL_UP_MOVE(82, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BELDUM

#if P_FAMILY_REGIROCK
static const struct LevelUpMove sRegirockLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 6, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(60, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(78, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIROCK

#if P_FAMILY_REGICE
static const struct LevelUpMove sRegiceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 6, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(54, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(60, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(78, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGICE

#if P_FAMILY_REGISTEEL
static const struct LevelUpMove sRegisteelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 6, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(24, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_AMNESIA),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(54, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(60, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(78, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGISTEEL

#if P_FAMILY_LATIAS
static const struct LevelUpMove sLatiasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(10, MOVE_RECOVER),
    LEVEL_UP_MOVE(15, MOVE_CONFUSION),
    LEVEL_UP_MOVE(20, MOVE_TAILWIND),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(30, MOVE_WISH),
    LEVEL_UP_MOVE(35, MOVE_MIST_BALL),
    LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(50, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(55, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE(60, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(65, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(70, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LATIAS

#if P_FAMILY_LATIOS
static const struct LevelUpMove sLatiosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(10, MOVE_RECOVER),
    LEVEL_UP_MOVE(15, MOVE_CONFUSION),
    LEVEL_UP_MOVE(20, MOVE_TAILWIND),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(30, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE),
    LEVEL_UP_MOVE(40, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(50, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM),
    LEVEL_UP_MOVE(60, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(65, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(70, MOVE_MEMENTO),
    LEVEL_UP_MOVE(75, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LATIOS

#if P_FAMILY_KYOGRE
static const struct LevelUpMove sKyogreLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 9, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(18, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(27, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(36, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(45, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE(54, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(63, MOVE_ORIGIN_PULSE),
    LEVEL_UP_MOVE(72, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(81, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(90, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KYOGRE

#if P_FAMILY_GROUDON
static const struct LevelUpMove sGroudonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 9, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(18, MOVE_BULK_UP),
    LEVEL_UP_MOVE(27, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(45, MOVE_FISSURE),
    LEVEL_UP_MOVE(54, MOVE_REST),
    LEVEL_UP_MOVE(63, MOVE_PRECIPICE_BLADES),
    LEVEL_UP_MOVE(72, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(81, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(90, MOVE_ERUPTION),
    LEVEL_UP_END
};
#endif //P_FAMILY_GROUDON

#if P_FAMILY_RAYQUAZA
static const struct LevelUpMove sRayquazaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_ASCENT),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 9, MOVE_CRUNCH),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(27, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(54, MOVE_REST),
    LEVEL_UP_MOVE(63, MOVE_FLY),
    LEVEL_UP_MOVE(72, MOVE_HURRICANE),
    LEVEL_UP_MOVE(81, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(90, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_RAYQUAZA

#if P_FAMILY_JIRACHI
static const struct LevelUpMove sJirachiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_WISH),
    LEVEL_UP_MOVE( 7, MOVE_SWIFT),
    LEVEL_UP_MOVE(14, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(21, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_GRAVITY),
    LEVEL_UP_MOVE(42, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(49, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(56, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(63, MOVE_REST),
    LEVEL_UP_MOVE(70, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(77, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(84, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(91, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(98, MOVE_DOOM_DESIRE),
    LEVEL_UP_END
};
#endif //P_FAMILY_JIRACHI

#if P_FAMILY_DEOXYS
static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_TELEPORT),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(37, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(61, MOVE_RECOVER),
    LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_TELEPORT),
    LEVEL_UP_MOVE(19, MOVE_TAUNT),
    LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(37, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(61, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_TELEPORT),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(25, MOVE_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(37, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(55, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(55, MOVE_AMNESIA),
    LEVEL_UP_MOVE(61, MOVE_RECOVER),
    LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(73, MOVE_COUNTER),
    LEVEL_UP_MOVE(73, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(25, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(31, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(37, MOVE_SWIFT),
    LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(55, MOVE_AGILITY),
    LEVEL_UP_MOVE(61, MOVE_RECOVER),
    LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST),
    LEVEL_UP_MOVE(73, MOVE_EXTREME_SPEED),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEOXYS

#if P_FAMILY_TURTWIG
static const struct LevelUpMove sTurtwigLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 6, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(33, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(37, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrotleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 6, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(22, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(37, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(47, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(52, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sTorterraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 6, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_CURSE),
    LEVEL_UP_MOVE(22, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(33, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(39, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(45, MOVE_CRUNCH),
    LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(57, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_TURTWIG

#if P_FAMILY_CHIMCHAR
static const struct LevelUpMove sChimcharLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(17, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(23, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(25, MOVE_TORMENT),
    LEVEL_UP_MOVE(31, MOVE_FACADE),
    LEVEL_UP_MOVE(33, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(39, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(41, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(47, MOVE_FLAMETHROWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMonfernoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_FACADE),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(26, MOVE_FEINT),
    LEVEL_UP_MOVE(29, MOVE_TORMENT),
    LEVEL_UP_MOVE(36, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(46, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(49, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sInfernapeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_FACADE),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(19, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(26, MOVE_FEINT),
    LEVEL_UP_MOVE(29, MOVE_U_TURN),
    LEVEL_UP_MOVE(42, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(52, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(58, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(68, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHIMCHAR

#if P_FAMILY_PIPLUP
static const struct LevelUpMove sPiplupLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_CHARM),
    LEVEL_UP_MOVE(15, MOVE_PECK),
    LEVEL_UP_MOVE(18, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_SWAGGER),
    LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(29, MOVE_BRINE),
    LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(36, MOVE_MIST),
    LEVEL_UP_MOVE(39, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sPrinplupLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_CHARM),
    LEVEL_UP_MOVE(15, MOVE_PECK),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(42, MOVE_MIST),
    LEVEL_UP_MOVE(46, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(15, MOVE_PECK),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(33, MOVE_BRINE),
    LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(46, MOVE_MIST),
    LEVEL_UP_MOVE(52, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_PIPLUP

#if P_FAMILY_STARLY
static const struct LevelUpMove sStarlyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(17, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(21, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(41, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sStaraviaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(18, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(23, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sStaraptorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(18, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(23, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(28, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_AGILITY),
    LEVEL_UP_MOVE(49, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_STARLY

#if P_FAMILY_BIDOOF
static const struct LevelUpMove sBidoofLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(17, MOVE_TAUNT),
    LEVEL_UP_MOVE(21, MOVE_YAWN),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(41, MOVE_AMNESIA),
    LEVEL_UP_MOVE(45, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(49, MOVE_CURSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBibarelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 9, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(13, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(18, MOVE_TAUNT),
    LEVEL_UP_MOVE(23, MOVE_YAWN),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(38, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(48, MOVE_AMNESIA),
    LEVEL_UP_MOVE(53, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(58, MOVE_CURSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BIDOOF

#if P_FAMILY_KRICKETOT
static const struct LevelUpMove sKricketotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 6, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(16, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKricketuneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(14, MOVE_ABSORB),
    LEVEL_UP_MOVE(18, MOVE_SING),
    LEVEL_UP_MOVE(22, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(26, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(34, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(38, MOVE_TAUNT),
    LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(44, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(46, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(50, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_KRICKETOT

#if P_FAMILY_SHINX
static const struct LevelUpMove sShinxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(16, MOVE_SPARK),
    LEVEL_UP_MOVE(20, MOVE_ROAR),
    LEVEL_UP_MOVE(24, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(44, MOVE_SWAGGER),
    LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLuxioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_ROAR),
    LEVEL_UP_MOVE(31, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(48, MOVE_CRUNCH),
    LEVEL_UP_MOVE(54, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(60, MOVE_SWAGGER),
    LEVEL_UP_MOVE(68, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLuxrayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_ROAR),
    LEVEL_UP_MOVE(33, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(40, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(48, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(64, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(72, MOVE_SWAGGER),
    LEVEL_UP_MOVE(80, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHINX

#if P_FAMILY_CRANIDOS
static const struct LevelUpMove sCranidosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(42, MOVE_SCREECH),
    LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sRampardosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(36, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(43, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(51, MOVE_SCREECH),
    LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRANIDOS

#if P_FAMILY_SHIELDON
static const struct LevelUpMove sShieldonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 6, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(33, MOVE_ENDURE),
    LEVEL_UP_MOVE(37, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(42, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sBastiodonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE( 6, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(19, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(36, MOVE_ENDURE),
    LEVEL_UP_MOVE(43, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(51, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHIELDON

#if P_FAMILY_BURMY
static const struct LevelUpMove sBurmyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE(10, MOVE_TACKLE),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_STRING_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sWormadamPlantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(29, MOVE_GROWTH),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_INFESTATION),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_ATTRACT),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(29, MOVE_HARDEN),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_INFESTATION),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_ATTRACT),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_FISSURE),
    LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(29, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_INFESTATION),
    LEVEL_UP_MOVE(38, MOVE_FLAIL),
    LEVEL_UP_MOVE(41, MOVE_ATTRACT),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sMothimLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(23, MOVE_CONFUSION),
    LEVEL_UP_MOVE(26, MOVE_GUST),
    LEVEL_UP_MOVE(29, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(32, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(35, MOVE_ROOST),
    LEVEL_UP_MOVE(38, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(41, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(47, MOVE_LUNGE),
    LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_BURMY

#if P_FAMILY_COMBEE
static const struct LevelUpMove sCombeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVespiquenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 8, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(12, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(28, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(32, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_ATTACK_ORDER),
    LEVEL_UP_MOVE(40, MOVE_DEFEND_ORDER),
    LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_FAMILY_COMBEE

#if P_FAMILY_PACHIRISU
static const struct LevelUpMove sPachirisuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(13, MOVE_SPARK),
    LEVEL_UP_MOVE(17, MOVE_ENDURE),
    LEVEL_UP_MOVE(19, MOVE_NUZZLE),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(25, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(29, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(33, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(37, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(41, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(49, MOVE_THUNDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_PACHIRISU

#if P_FAMILY_BUIZEL
static const struct LevelUpMove sBuizelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(18, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(27, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(31, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(35, MOVE_WATERFALL),
    LEVEL_UP_MOVE(38, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(41, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloatzelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(18, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(29, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(35, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(41, MOVE_WATERFALL),
    LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(51, MOVE_AGILITY),
    LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUIZEL

#if P_FAMILY_CHERUBI
static const struct LevelUpMove sCherubiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(15, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(26, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(40, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(45, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sCherrimLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE(15, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(28, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(48, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(62, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHERUBI

#if P_FAMILY_SHELLOS
static const struct LevelUpMove sShellosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 5, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_RECOVER),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(31, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(35, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(40, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(45, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sGastrodonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_RECOVER),
    LEVEL_UP_MOVE(15, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(33, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(39, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(46, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(53, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHELLOS

#if P_FAMILY_DRIFLOON
static const struct LevelUpMove sDrifloonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_GUST),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_PAYBACK),
    LEVEL_UP_MOVE(16, MOVE_HEX),
    LEVEL_UP_MOVE(20, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(24, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(24, MOVE_SWALLOW),
    LEVEL_UP_MOVE(24, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(32, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(36, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(40, MOVE_TAILWIND),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrifblimLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_PAYBACK),
    LEVEL_UP_MOVE(16, MOVE_HEX),
    LEVEL_UP_MOVE(20, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(24, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(24, MOVE_SWALLOW),
    LEVEL_UP_MOVE(24, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(31, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(42, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(48, MOVE_TAILWIND),
    LEVEL_UP_MOVE(54, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRIFLOON

#if P_FAMILY_BUNEARY
static const struct LevelUpMove sBunearyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(12, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(24, MOVE_CHARM),
    LEVEL_UP_MOVE(28, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(32, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(44, MOVE_FLATTER),
    LEVEL_UP_MOVE(48, MOVE_BOUNCE),
    LEVEL_UP_MOVE(52, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sLopunnyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(12, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(16, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(24, MOVE_CHARM),
    LEVEL_UP_MOVE(28, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(32, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(44, MOVE_FLATTER),
    LEVEL_UP_MOVE(48, MOVE_BOUNCE),
    LEVEL_UP_MOVE(52, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(56, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUNEARY

#if P_FAMILY_GLAMEOW
static const struct LevelUpMove sGlameowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 5, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 8, MOVE_GROWL),
    LEVEL_UP_MOVE(13, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_TAUNT),
    LEVEL_UP_MOVE(32, MOVE_RETALIATE),
    LEVEL_UP_MOVE(37, MOVE_SLASH),
    LEVEL_UP_MOVE(41, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_ATTRACT),
    LEVEL_UP_MOVE(48, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(50, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPuruglyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE( 5, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 8, MOVE_GROWL),
    LEVEL_UP_MOVE(13, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_TAUNT),
    LEVEL_UP_MOVE(32, MOVE_RETALIATE),
    LEVEL_UP_MOVE(37, MOVE_SLASH),
    LEVEL_UP_MOVE(45, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(52, MOVE_ATTRACT),
    LEVEL_UP_MOVE(60, MOVE_HONE_CLAWS),
    LEVEL_UP_END
};
#endif //P_FAMILY_GLAMEOW

#if P_FAMILY_STUNKY
static const struct LevelUpMove sStunkyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 3, MOVE_FEINT),
    LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 9, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(27, MOVE_TOXIC),
    LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(33, MOVE_MEMENTO),
    LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(39, MOVE_BELCH),
    LEVEL_UP_MOVE(42, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(45, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkuntankLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 9, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(27, MOVE_TOXIC),
    LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(33, MOVE_MEMENTO),
    LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(43, MOVE_BELCH),
    LEVEL_UP_MOVE(48, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(53, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_STUNKY

#if P_FAMILY_BRONZOR
static const struct LevelUpMove sBronzorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 8, MOVE_PAYBACK),
    LEVEL_UP_MOVE(12, MOVE_IMPRISON),
    LEVEL_UP_MOVE(16, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(20, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

static const struct LevelUpMove sBronzongLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE(12, MOVE_IMPRISON),
    LEVEL_UP_MOVE(16, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(20, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(28, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(44, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(56, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRONZOR

#if P_FAMILY_CHATOT
static const struct LevelUpMove sChatotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_CHATTER),
    LEVEL_UP_MOVE( 1, MOVE_CONFIDE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 5, MOVE_PECK),
    LEVEL_UP_MOVE( 9, MOVE_GROWL),
    LEVEL_UP_MOVE(13, MOVE_SING),
    LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_CHATTER),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(29, MOVE_ROUND),
    LEVEL_UP_MOVE(33, MOVE_MIMIC),
    LEVEL_UP_MOVE(37, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(41, MOVE_ROOST),
    LEVEL_UP_MOVE(45, MOVE_UPROAR),
    LEVEL_UP_MOVE(49, MOVE_PARTING_SHOT),
    LEVEL_UP_MOVE(50, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHATOT

#if P_FAMILY_SPIRITOMB
static const struct LevelUpMove sSpiritombLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 5, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(10, MOVE_SPITE),
    LEVEL_UP_MOVE(15, MOVE_PAYBACK),
    LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(25, MOVE_HEX),
    LEVEL_UP_MOVE(30, MOVE_MEMENTO),
    LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_CURSE),
    LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(50, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(55, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(60, MOVE_DREAM_EATER),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPIRITOMB

#if P_FAMILY_GIBLE
static const struct LevelUpMove sGibleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_BITE),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_DIG),
    LEVEL_UP_MOVE(48, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(60, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGabiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(27, MOVE_BITE),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(50, MOVE_DIG),
    LEVEL_UP_MOVE(58, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(66, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(74, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGarchompLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(27, MOVE_BITE),
    LEVEL_UP_MOVE(34, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(52, MOVE_DIG),
    LEVEL_UP_MOVE(62, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(72, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(82, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_GIBLE

#if P_FAMILY_RIOLU
static const struct LevelUpMove sRioluLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 4, MOVE_FEINT),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(12, MOVE_COUNTER),
    LEVEL_UP_MOVE(16, MOVE_WORK_UP),
    LEVEL_UP_MOVE(20, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(28, MOVE_SCREECH),
    LEVEL_UP_MOVE(32, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(36, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(44, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(48, MOVE_COPYCAT),
    LEVEL_UP_MOVE(52, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(56, MOVE_REVERSAL),
    LEVEL_UP_END
};

static const struct LevelUpMove sLucarioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_SCREECH),
    LEVEL_UP_MOVE( 1, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(12, MOVE_COUNTER),
    LEVEL_UP_MOVE(16, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(20, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(28, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(32, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(36, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(44, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(48, MOVE_METEOR_MASH),
    LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(56, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_RIOLU

#if P_FAMILY_HIPPOPOTAS
static const struct LevelUpMove sHippopotasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(16, MOVE_DIG),
    LEVEL_UP_MOVE(20, MOVE_CRUNCH),
    LEVEL_UP_MOVE(24, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_REST),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(48, MOVE_FISSURE),
    LEVEL_UP_MOVE(52, MOVE_SLACK_OFF),
    LEVEL_UP_END
};

static const struct LevelUpMove sHippowdonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE(12, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(16, MOVE_DIG),
    LEVEL_UP_MOVE(20, MOVE_CRUNCH),
    LEVEL_UP_MOVE(24, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_ROAR),
    LEVEL_UP_MOVE(38, MOVE_REST),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_FISSURE),
    LEVEL_UP_MOVE(62, MOVE_SLACK_OFF),
    LEVEL_UP_END
};
#endif //P_FAMILY_HIPPOPOTAS

#if P_FAMILY_SKORUPI
static const struct LevelUpMove sSkorupiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 6, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE( 9, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(18, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(21, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(33, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(39, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(42, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(48, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrapionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE( 9, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(18, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(21, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(33, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(39, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(44, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(49, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(54, MOVE_CRUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKORUPI

#if P_FAMILY_CROAGUNK
static const struct LevelUpMove sCroagunkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_FLATTER),
    LEVEL_UP_MOVE(16, MOVE_REVENGE),
    LEVEL_UP_MOVE(20, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(44, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(48, MOVE_BELCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxicroakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_FLATTER),
    LEVEL_UP_MOVE(16, MOVE_REVENGE),
    LEVEL_UP_MOVE(20, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(54, MOVE_BELCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CROAGUNK

#if P_FAMILY_CARNIVINE
static const struct LevelUpMove sCarnivineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(21, MOVE_INGRAIN),
    LEVEL_UP_MOVE(27, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE(31, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(37, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(37, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(37, MOVE_SWALLOW),
    LEVEL_UP_MOVE(41, MOVE_CRUNCH),
    LEVEL_UP_MOVE(47, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(50, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_CARNIVINE

#if P_FAMILY_FINNEON
static const struct LevelUpMove sFinneonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_ATTRACT),
    LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(17, MOVE_GUST),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_FLAIL),
    LEVEL_UP_MOVE(29, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(33, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(38, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(42, MOVE_U_TURN),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(49, MOVE_TAILWIND),
    LEVEL_UP_MOVE(54, MOVE_SOAK),
    LEVEL_UP_END
};

static const struct LevelUpMove sLumineonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SOAK),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_ATTRACT),
    LEVEL_UP_MOVE(13, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(17, MOVE_GUST),
    LEVEL_UP_MOVE(22, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(26, MOVE_FLAIL),
    LEVEL_UP_MOVE(29, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(35, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(42, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(48, MOVE_U_TURN),
    LEVEL_UP_MOVE(53, MOVE_BOUNCE),
    LEVEL_UP_MOVE(59, MOVE_TAILWIND),
    LEVEL_UP_MOVE(66, MOVE_SOAK),
    LEVEL_UP_END
};
#endif //P_FAMILY_FINNEON

#if P_FAMILY_SNOVER
static const struct LevelUpMove sSnoverLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(10, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(25, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(30, MOVE_SWAGGER),
    LEVEL_UP_MOVE(35, MOVE_INGRAIN),
    LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(45, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(50, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(25, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(30, MOVE_SWAGGER),
    LEVEL_UP_MOVE(35, MOVE_INGRAIN),
    LEVEL_UP_MOVE(43, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(49, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(56, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNOVER

#if P_FAMILY_ROTOM
static const struct LevelUpMove sRotomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(15, MOVE_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(25, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(30, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(35, MOVE_HEX),
    LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(45, MOVE_TRICK),
    LEVEL_UP_MOVE(50, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(55, MOVE_UPROAR),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROTOM

#if P_FAMILY_UXIE
static const struct LevelUpMove sUxieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 7, MOVE_SWIFT),
    LEVEL_UP_MOVE(14, MOVE_ENDURE),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(28, MOVE_IMPRISON),
    LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(42, MOVE_AMNESIA),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(56, MOVE_YAWN),
    LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_FLAIL),
    LEVEL_UP_MOVE(77, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_UXIE

#if P_FAMILY_MESPRIT
static const struct LevelUpMove sMespritLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 7, MOVE_SWIFT),
    LEVEL_UP_MOVE(14, MOVE_PROTECT),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(28, MOVE_IMPRISON),
    LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(42, MOVE_CHARM),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(56, MOVE_FLATTER),
    LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_COPYCAT),
    LEVEL_UP_MOVE(77, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_MESPRIT

#if P_FAMILY_AZELF
static const struct LevelUpMove sAzelfLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_REST),
    LEVEL_UP_MOVE( 7, MOVE_SWIFT),
    LEVEL_UP_MOVE(14, MOVE_DETECT),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(28, MOVE_IMPRISON),
    LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(56, MOVE_UPROAR),
    LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(77, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_AZELF

#if P_FAMILY_DIALGA
static const struct LevelUpMove sDialgaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 8, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(40, MOVE_ROAR_OF_TIME),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(56, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(64, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(72, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(80, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(88, MOVE_IRON_TAIL),
    LEVEL_UP_END
};
#endif //P_FAMILY_DIALGA

#if P_FAMILY_PALKIA
static const struct LevelUpMove sPalkiaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE( 8, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(40, MOVE_SPACIAL_REND),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(56, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(64, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(72, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(80, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(88, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_PALKIA

#if P_FAMILY_HEATRAN
static const struct LevelUpMove sHeatranLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(48, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(54, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(60, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(66, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(72, MOVE_MAGMA_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_HEATRAN

#if P_FAMILY_REGIGIGAS
static const struct LevelUpMove sRegigigasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 6, MOVE_PAYBACK),
    LEVEL_UP_MOVE(12, MOVE_REVENGE),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_PROTECT),
    LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(36, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_BODY_PRESS),
    LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(54, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(66, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(78, MOVE_CRUSH_GRIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIGIGAS

#if P_FAMILY_GIRATINA
static const struct LevelUpMove sGiratinaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_DEFOG),
    LEVEL_UP_MOVE( 7, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(49, MOVE_SHADOW_FORCE),
    LEVEL_UP_MOVE(56, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(63, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(77, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(84, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_FAMILY_GIRATINA

#if P_FAMILY_CRESSELIA
static const struct LevelUpMove sCresseliaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 6, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_PSYCHO_SHIFT),
    LEVEL_UP_MOVE(30, MOVE_SLASH),
    LEVEL_UP_MOVE(36, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(42, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(48, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(54, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(60, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(66, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(72, MOVE_LUNAR_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRESSELIA

#if P_FAMILY_MANAPHY
static const struct LevelUpMove sPhioneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(46, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(54, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(61, MOVE_DIVE),
    LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sManaphyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 9, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(31, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(39, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(46, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(54, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(61, MOVE_DIVE),
    LEVEL_UP_MOVE(69, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(76, MOVE_HEART_SWAP),
    LEVEL_UP_END
};
#endif //P_FAMILY_MANAPHY

#if P_FAMILY_DARKRAI
static const struct LevelUpMove sDarkraiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(38, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(57, MOVE_HAZE),
    LEVEL_UP_MOVE(66, MOVE_DARK_VOID),
    LEVEL_UP_MOVE(75, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(84, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(93, MOVE_DARK_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DARKRAI

#if P_FAMILY_SHAYMIN
static const struct LevelUpMove sShayminLandLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(55, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(64, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(68, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(82, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(100, MOVE_SEED_FLARE),
    LEVEL_UP_END
};

static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(19, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(46, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(55, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(64, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(82, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(91, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(100, MOVE_SEED_FLARE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHAYMIN

#if P_FAMILY_ARCEUS
static const struct LevelUpMove sArceusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(10, MOVE_GRAVITY),
    LEVEL_UP_MOVE(20, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(40, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(50, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_RECOVER),
    LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(90, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(100, MOVE_JUDGMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCEUS

#if P_FAMILY_VICTINI
static const struct LevelUpMove sVictiniLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_V_CREATE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 7, MOVE_WORK_UP),
    LEVEL_UP_MOVE(14, MOVE_INCINERATE),
    LEVEL_UP_MOVE(21, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(35, MOVE_ENDURE),
    LEVEL_UP_MOVE(42, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(49, MOVE_INFERNO),
    LEVEL_UP_MOVE(56, MOVE_REVERSAL),
    LEVEL_UP_MOVE(63, MOVE_SEARING_SHOT),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(77, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(84, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(91, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VICTINI

#if P_FAMILY_SNIVY
static const struct LevelUpMove sSnivyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(10, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_GROWTH),
    LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(19, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(22, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(31, MOVE_COIL),
    LEVEL_UP_MOVE(34, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(37, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(43, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sServineLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(10, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_GROWTH),
    LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(36, MOVE_COIL),
    LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(44, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(48, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(52, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSerperiorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(10, MOVE_WRAP),
    LEVEL_UP_MOVE(13, MOVE_GROWTH),
    LEVEL_UP_MOVE(16, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(20, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(38, MOVE_COIL),
    LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(50, MOVE_WRING_OUT),
    LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(62, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNIVY

#if P_FAMILY_TEPIG
static const struct LevelUpMove sTepigLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(19, MOVE_SMOG),
    LEVEL_UP_MOVE(21, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(31, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(33, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(37, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(39, MOVE_ROAR),
    LEVEL_UP_MOVE(43, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sPigniteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_SMOG),
    LEVEL_UP_MOVE(23, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(36, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(39, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(44, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(47, MOVE_ROAR),
    LEVEL_UP_MOVE(52, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sEmboarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_EMBER),
    LEVEL_UP_MOVE( 9, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(13, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_SMOG),
    LEVEL_UP_MOVE(23, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(38, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(50, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(55, MOVE_ROAR),
    LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_TEPIG

#if P_FAMILY_OSHAWOTT
static const struct LevelUpMove sOshawottLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(17, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(19, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(23, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_REVENGE),
    LEVEL_UP_MOVE(29, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(31, MOVE_ENCORE),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(37, MOVE_RETALIATE),
    LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sDewottLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(26, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(29, MOVE_REVENGE),
    LEVEL_UP_MOVE(34, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(37, MOVE_ENCORE),
    LEVEL_UP_MOVE(42, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_RETALIATE),
    LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSamurottLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(11, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(29, MOVE_REVENGE),
    LEVEL_UP_MOVE(34, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(39, MOVE_ENCORE),
    LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(51, MOVE_RETALIATE),
    LEVEL_UP_MOVE(58, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_OSHAWOTT

#if P_FAMILY_PATRAT
static const struct LevelUpMove sPatratLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(11, MOVE_DETECT),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_CRUNCH),
    LEVEL_UP_MOVE(18, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(21, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(23, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(28, MOVE_WORK_UP),
    LEVEL_UP_MOVE(31, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(33, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(38, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(41, MOVE_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWatchogLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_BIDE),
    LEVEL_UP_MOVE(11, MOVE_DETECT),
    LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_CRUNCH),
    LEVEL_UP_MOVE(18, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(22, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(25, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(29, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(32, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(36, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(43, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(46, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(50, MOVE_SLAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_PATRAT

#if P_FAMILY_LILLIPUP
static const struct LevelUpMove sLillipupLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_RETALIATE),
    LEVEL_UP_MOVE(17, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(20, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(36, MOVE_REVERSAL),
    LEVEL_UP_MOVE(40, MOVE_ROAR),
    LEVEL_UP_MOVE(44, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHerdierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_RETALIATE),
    LEVEL_UP_MOVE(19, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(24, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(42, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(48, MOVE_REVERSAL),
    LEVEL_UP_MOVE(54, MOVE_ROAR),
    LEVEL_UP_MOVE(60, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(66, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sStoutlandLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_RETALIATE),
    LEVEL_UP_MOVE(19, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(24, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(46, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(54, MOVE_REVERSAL),
    LEVEL_UP_MOVE(62, MOVE_ROAR),
    LEVEL_UP_MOVE(70, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE(78, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LILLIPUP

#if P_FAMILY_PURRLOIN
static const struct LevelUpMove sPurrloinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_TORMENT),
    LEVEL_UP_MOVE(21, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(24, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(36, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sLiepardLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_TORMENT),
    LEVEL_UP_MOVE(23, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(28, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(46, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(52, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};
#endif //P_FAMILY_PURRLOIN

#if P_FAMILY_PANSAGE
static const struct LevelUpMove sPansageLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(25, MOVE_TORMENT),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE(37, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSimisageLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANSAGE

#if P_FAMILY_PANSEAR
static const struct LevelUpMove sPansearLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_INCINERATE),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_YAWN),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_FLAME_BURST),
    LEVEL_UP_MOVE(25, MOVE_AMNESIA),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(37, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSimisearLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANSEAR

#if P_FAMILY_PANPOUR
static const struct LevelUpMove sPanpourLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_SCALD),
    LEVEL_UP_MOVE(25, MOVE_TAUNT),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_BRINE),
    LEVEL_UP_MOVE(37, MOVE_RECYCLE),
    LEVEL_UP_MOVE(40, MOVE_NATURAL_GIFT),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sSimipourLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 1, MOVE_SCALD),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANPOUR

#if P_FAMILY_MUNNA
static const struct LevelUpMove sMunnaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 8, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(12, MOVE_IMPRISON),
    LEVEL_UP_MOVE(16, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(20, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(32, MOVE_YAWN),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(44, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(48, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(52, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMusharnaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_CALM_MIND),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_PSYBEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUNNA

#if P_FAMILY_PIDOVE
static const struct LevelUpMove sPidoveLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_LEER),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_TAUNT),
    LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(32, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(36, MOVE_ROOST),
    LEVEL_UP_MOVE(40, MOVE_TAILWIND),
    LEVEL_UP_MOVE(44, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sTranquillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_TAUNT),
    LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(26, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(34, MOVE_DETECT),
    LEVEL_UP_MOVE(38, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(44, MOVE_ROOST),
    LEVEL_UP_MOVE(50, MOVE_TAILWIND),
    LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sUnfezantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_TAUNT),
    LEVEL_UP_MOVE(16, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(26, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(36, MOVE_DETECT),
    LEVEL_UP_MOVE(42, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(50, MOVE_ROOST),
    LEVEL_UP_MOVE(58, MOVE_TAILWIND),
    LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_PIDOVE

#if P_FAMILY_BLITZLE
static const struct LevelUpMove sBlitzleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(22, MOVE_PURSUIT),
    LEVEL_UP_MOVE(25, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_STOMP),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(43, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(11, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(22, MOVE_PURSUIT),
    LEVEL_UP_MOVE(25, MOVE_SPARK),
    LEVEL_UP_MOVE(31, MOVE_STOMP),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(42, MOVE_AGILITY),
    LEVEL_UP_MOVE(47, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(53, MOVE_THRASH),
    LEVEL_UP_MOVE(58, MOVE_ION_DELUGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BLITZLE

#if P_FAMILY_ROGGENROLA
static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(36, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(40, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sBoldoreLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(42, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sGigalithLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_GEM),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(12, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(16, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(42, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROGGENROLA

#if P_FAMILY_WOOBAT
static const struct LevelUpMove sWoobatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE(10, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(20, MOVE_IMPRISON),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_AMNESIA),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwoobatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(20, MOVE_IMPRISON),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_AMNESIA),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(55, MOVE_SIMPLE_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_WOOBAT

#if P_FAMILY_DRILBUR
static const struct LevelUpMove sDrilburLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 4, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(20, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(24, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_DIG),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(48, MOVE_FISSURE),
    LEVEL_UP_END
};

static const struct LevelUpMove sExcadrillLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(20, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(24, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(34, MOVE_DIG),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(46, MOVE_DRILL_RUN),
    LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(58, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRILBUR

#if P_FAMILY_AUDINO
static const struct LevelUpMove sAudinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 4, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_GROWL),
    LEVEL_UP_MOVE(20, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(28, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(36, MOVE_SIMPLE_BEAM),
    LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(44, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(52, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(56, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(60, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_AUDINO

#if P_FAMILY_TIMBURR
static const struct LevelUpMove sTimburrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 8, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(16, MOVE_BULK_UP),
    LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(40, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(44, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(48, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGurdurrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(16, MOVE_BULK_UP),
    LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(36, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(60, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(12, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(16, MOVE_BULK_UP),
    LEVEL_UP_MOVE(20, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(36, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(54, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(60, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TIMBURR

#if P_FAMILY_TYMPOLE
static const struct LevelUpMove sTympoleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_ACID),
    LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(28, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(36, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(44, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sPalpitoadLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(30, MOVE_UPROAR),
    LEVEL_UP_MOVE(37, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(48, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(30, MOVE_UPROAR),
    LEVEL_UP_MOVE(39, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(46, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(54, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(62, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(70, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYMPOLE

#if P_FAMILY_THROH
static const struct LevelUpMove sThrohLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(15, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(20, MOVE_REVENGE),
    LEVEL_UP_MOVE(25, MOVE_BULK_UP),
    LEVEL_UP_MOVE(30, MOVE_STORM_THROW),
    LEVEL_UP_MOVE(35, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(40, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(45, MOVE_ENDURE),
    LEVEL_UP_MOVE(50, MOVE_REVERSAL),
    LEVEL_UP_MOVE(55, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_THROH

#if P_FAMILY_SAWK
static const struct LevelUpMove sSawkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(15, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(20, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(25, MOVE_BULK_UP),
    LEVEL_UP_MOVE(30, MOVE_RETALIATE),
    LEVEL_UP_MOVE(35, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(40, MOVE_COUNTER),
    LEVEL_UP_MOVE(45, MOVE_ENDURE),
    LEVEL_UP_MOVE(50, MOVE_REVERSAL),
    LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SAWK

#if P_FAMILY_SEWADDLE
static const struct LevelUpMove sSewaddleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 8, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(29, MOVE_ENDURE),
    LEVEL_UP_MOVE(31, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(43, MOVE_FLAIL),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwadloonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_GRASS_WHISTLE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_END
};

static const struct LevelUpMove sLeavannyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 8, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(22, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(29, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(36, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(39, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(46, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SEWADDLE

#if P_FAMILY_VENIPEDE
static const struct LevelUpMove sVenipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 8, MOVE_PROTECT),
    LEVEL_UP_MOVE(12, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(16, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhirlipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE(12, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(16, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(26, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(32, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(38, MOVE_AGILITY),
    LEVEL_UP_MOVE(44, MOVE_TOXIC),
    LEVEL_UP_MOVE(50, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sScolipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE(12, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(16, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(26, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(42, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_TOXIC),
    LEVEL_UP_MOVE(58, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(74, MOVE_MEGAHORN),
    LEVEL_UP_END
};
#endif //P_FAMILY_VENIPEDE

#if P_FAMILY_COTTONEE
static const struct LevelUpMove sCottoneeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 3, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(18, MOVE_GROWTH),
    LEVEL_UP_MOVE(21, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(24, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(27, MOVE_CHARM),
    LEVEL_UP_MOVE(30, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(36, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(39, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(42, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(45, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_TAILWIND),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_MEMENTO),
    LEVEL_UP_MOVE( 1, MOVE_HURRICANE),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE( 1, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_END
};
#endif //P_FAMILY_COTTONEE

#if P_FAMILY_PETILIL
static const struct LevelUpMove sPetililLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 3, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 9, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(21, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(27, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(33, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(42, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sLilligantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 5, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(37, MOVE_RECOVER),
    LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE),
    LEVEL_UP_MOVE(47, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_PETILIL

#if P_FAMILY_BASCULIN
static const struct LevelUpMove sBasculinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 3, MOVE_UPROAR),
    LEVEL_UP_MOVE( 5, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(11, MOVE_CHIP_AWAY),
    LEVEL_UP_MOVE(14, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(17, MOVE_CRUNCH),
    LEVEL_UP_MOVE(20, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(23, MOVE_SOAK),
    LEVEL_UP_MOVE(26, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_FLAIL),
    LEVEL_UP_MOVE(38, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBasculegionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_HEX),
    LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_CRUNCH),
    LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_BASCULIN

#if P_FAMILY_SANDILE
static const struct LevelUpMove sSandileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_TORMENT),
    LEVEL_UP_MOVE(21, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(30, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(33, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(39, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sKrokorokLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_TORMENT),
    LEVEL_UP_MOVE(21, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(35, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(47, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sKrookodileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 9, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_TORMENT),
    LEVEL_UP_MOVE(21, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_SWAGGER),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(35, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(51, MOVE_THRASH),
    LEVEL_UP_MOVE(58, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SANDILE

#if P_FAMILY_DARUMAKA
static const struct LevelUpMove sDarumakaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_TAUNT),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_INCINERATE),
    LEVEL_UP_MOVE(16, MOVE_WORK_UP),
    LEVEL_UP_MOVE(20, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(40, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(44, MOVE_THRASH),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_INCINERATE),
    LEVEL_UP_MOVE(16, MOVE_WORK_UP),
    LEVEL_UP_MOVE(20, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(44, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(56, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_TAUNT),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(16, MOVE_WORK_UP),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(40, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(44, MOVE_THRASH),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(16, MOVE_WORK_UP),
    LEVEL_UP_MOVE(20, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(44, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(50, MOVE_THRASH),
    LEVEL_UP_MOVE(56, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_DARUMAKA

#if P_FAMILY_MARACTUS
static const struct LevelUpMove sMaractusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE( 4, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(20, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(24, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(28, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(32, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(36, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(40, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(44, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(56, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(60, MOVE_COTTON_GUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_MARACTUS

#if P_FAMILY_DWEBBLE
static const struct LevelUpMove sDwebbleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 8, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(12, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(36, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(40, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(48, MOVE_ROCK_WRECKER),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrustleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(12, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(32, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(38, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(44, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(56, MOVE_ROCK_WRECKER),
    LEVEL_UP_END
};
#endif //P_FAMILY_DWEBBLE

#if P_FAMILY_SCRAGGY
static const struct LevelUpMove sScraggyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 8, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(12, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_FACADE),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(36, MOVE_SWAGGER),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(48, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(52, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sScraftyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(12, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_FACADE),
    LEVEL_UP_MOVE(20, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(36, MOVE_SWAGGER),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(54, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(60, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCRAGGY

#if P_FAMILY_SIGILYPH
static const struct LevelUpMove sSigilyphLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_GRAVITY),
    LEVEL_UP_MOVE(10, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(15, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(30, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_TAILWIND),
    LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(50, MOVE_REFLECT),
    LEVEL_UP_MOVE(55, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE(60, MOVE_SKILL_SWAP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SIGILYPH

#if P_FAMILY_YAMASK
static const struct LevelUpMove sYamaskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 4, MOVE_HAZE),
    LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_GRUDGE),
    LEVEL_UP_MOVE(36, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(44, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_GRUDGE),
    LEVEL_UP_MOVE(38, MOVE_CURSE),
    LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(50, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 4, MOVE_HAZE),
    LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(36, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};

static const struct LevelUpMove sRunerigusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_DISABLE),
    LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(24, MOVE_HEX),
    LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_CURSE),
    LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_YAMASK

#if P_FAMILY_TIRTOUGA
static const struct LevelUpMove sTirtougaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 3, MOVE_PROTECT),
    LEVEL_UP_MOVE( 6, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 9, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(21, MOVE_BRINE),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(39, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sCarracostaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 9, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(21, MOVE_BRINE),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(27, MOVE_CRUNCH),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(51, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TIRTOUGA

#if P_FAMILY_ARCHEN
static const struct LevelUpMove sArchenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 6, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(18, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(21, MOVE_U_TURN),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_TAILWIND),
    LEVEL_UP_MOVE(39, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(45, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sArcheopsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(18, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(21, MOVE_U_TURN),
    LEVEL_UP_MOVE(24, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(27, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_TAILWIND),
    LEVEL_UP_MOVE(41, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(46, MOVE_THRASH),
    LEVEL_UP_MOVE(51, MOVE_ENDEAVOR),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCHEN

#if P_FAMILY_TRUBBISH
static const struct LevelUpMove sTrubbishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 3, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 9, MOVE_AMNESIA),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(18, MOVE_SLUDGE),
    LEVEL_UP_MOVE(21, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(21, MOVE_SWALLOW),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(30, MOVE_TOXIC),
    LEVEL_UP_MOVE(33, MOVE_BELCH),
    LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(39, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(42, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sGarbodorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 9, MOVE_AMNESIA),
    LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(15, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(18, MOVE_SLUDGE),
    LEVEL_UP_MOVE(21, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(21, MOVE_SWALLOW),
    LEVEL_UP_MOVE(24, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(27, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(30, MOVE_TOXIC),
    LEVEL_UP_MOVE(33, MOVE_BELCH),
    LEVEL_UP_MOVE(39, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(43, MOVE_GUNK_SHOT),
    LEVEL_UP_MOVE(48, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_TRUBBISH

#if P_FAMILY_ZORUA
static const struct LevelUpMove sZoruaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_TORMENT),
    LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_IMPRISON),
    LEVEL_UP_MOVE(40, MOVE_NIGHT_DAZE),
    LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sZoroarkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_U_TURN),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(34, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_IMPRISON),
    LEVEL_UP_MOVE(46, MOVE_NIGHT_DAZE),
    LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(58, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 6, MOVE_SNARL),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 6, MOVE_SNARL),
    LEVEL_UP_MOVE(11, MOVE_SWIFT),
    LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_ZORUA

#if P_FAMILY_MINCCINO
static const struct LevelUpMove sMinccinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_SING),
    LEVEL_UP_MOVE(16, MOVE_CHARM),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_ENCORE),
    LEVEL_UP_MOVE(28, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(36, MOVE_TICKLE),
    LEVEL_UP_MOVE(40, MOVE_SLAM),
    LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(48, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCinccinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_SWIFT),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE( 1, MOVE_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MINCCINO

#if P_FAMILY_GOTHITA
static const struct LevelUpMove sGothitaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 8, MOVE_TICKLE),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_CHARM),
    LEVEL_UP_MOVE(20, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(24, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(33, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_FLATTER),
    LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(48, MOVE_MAGIC_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGothoritaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_CHARM),
    LEVEL_UP_MOVE(20, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(24, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(35, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(46, MOVE_FLATTER),
    LEVEL_UP_MOVE(52, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(58, MOVE_MAGIC_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sGothitelleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_TICKLE),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_CHARM),
    LEVEL_UP_MOVE(20, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(24, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(35, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_FLATTER),
    LEVEL_UP_MOVE(56, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(64, MOVE_MAGIC_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOTHITA

#if P_FAMILY_SOLOSIS
static const struct LevelUpMove sSolosisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_RECOVER),
    LEVEL_UP_MOVE( 8, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_CHARM),
    LEVEL_UP_MOVE(20, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(24, MOVE_REFLECT),
    LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(33, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(48, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDuosionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_RECOVER),
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_CHARM),
    LEVEL_UP_MOVE(20, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(24, MOVE_REFLECT),
    LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(35, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(46, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(52, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(58, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};

static const struct LevelUpMove sReuniclusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_RECOVER),
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(12, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(16, MOVE_CHARM),
    LEVEL_UP_MOVE(20, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(24, MOVE_REFLECT),
    LEVEL_UP_MOVE(28, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(35, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(56, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(64, MOVE_WONDER_ROOM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SOLOSIS

#if P_FAMILY_DUCKLETT
static const struct LevelUpMove sDucklettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_DEFOG),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(24, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(37, MOVE_TAILWIND),
    LEVEL_UP_MOVE(41, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(46, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSwannaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 1, MOVE_DEFOG),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 6, MOVE_DEFOG),
    LEVEL_UP_MOVE( 9, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(19, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(24, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(34, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(40, MOVE_TAILWIND),
    LEVEL_UP_MOVE(47, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DUCKLETT

#if P_FAMILY_VANILLITE
static const struct LevelUpMove sVanilliteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 4, MOVE_TAUNT),
    LEVEL_UP_MOVE( 8, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(20, MOVE_HAIL),
    LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE(28, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(40, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(44, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(48, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sVanillishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(20, MOVE_HAIL),
    LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE(28, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(38, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(44, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(50, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(56, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(20, MOVE_HAIL),
    LEVEL_UP_MOVE(24, MOVE_ICICLE_SPEAR),
    LEVEL_UP_MOVE(28, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(38, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(44, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(52, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(60, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_VANILLITE

#if P_FAMILY_DEERLING
static const struct LevelUpMove sDeerlingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(24, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(41, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(51, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE( 1, MOVE_MEGAHORN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(13, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(24, MOVE_JUMP_KICK),
    LEVEL_UP_MOVE(28, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(44, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEERLING

#if P_FAMILY_EMOLGA
static const struct LevelUpMove sEmolgaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(20, MOVE_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(30, MOVE_SPARK),
    LEVEL_UP_MOVE(35, MOVE_ENCORE),
    LEVEL_UP_MOVE(40, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(45, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(50, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(55, MOVE_AGILITY),
    LEVEL_UP_END
};
#endif //P_FAMILY_EMOLGA

#if P_FAMILY_KARRABLAST
static const struct LevelUpMove sKarrablastLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 8, MOVE_ENDURE),
    LEVEL_UP_MOVE(12, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(16, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sEscavalierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(12, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(16, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_REVERSAL),
    LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(32, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(52, MOVE_METAL_BURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_KARRABLAST

#if P_FAMILY_FOONGUS
static const struct LevelUpMove sFoongusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_INGRAIN),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(44, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(48, MOVE_SPORE),
    LEVEL_UP_END
};

static const struct LevelUpMove sAmoongussLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(24, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_INGRAIN),
    LEVEL_UP_MOVE(36, MOVE_TOXIC),
    LEVEL_UP_MOVE(42, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(54, MOVE_SPORE),
    LEVEL_UP_END
};
#endif //P_FAMILY_FOONGUS

#if P_FAMILY_FRILLISH
static const struct LevelUpMove sFrillishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(20, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_RECOVER),
    LEVEL_UP_MOVE(32, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(44, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(48, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};

static const struct LevelUpMove sJellicentLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(16, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(20, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_BRINE),
    LEVEL_UP_MOVE(28, MOVE_RECOVER),
    LEVEL_UP_MOVE(32, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(36, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(54, MOVE_WATER_SPOUT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FRILLISH

#if P_FAMILY_ALOMOMOLA
static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
    LEVEL_UP_MOVE( 5, MOVE_AQUA_RING),
    LEVEL_UP_MOVE( 9, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(17, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(21, MOVE_PROTECT),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(29, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(33, MOVE_SOAK),
    LEVEL_UP_MOVE(37, MOVE_WISH),
    LEVEL_UP_MOVE(41, MOVE_BRINE),
    LEVEL_UP_MOVE(45, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(49, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(53, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(57, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(61, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_ALOMOMOLA

#if P_FAMILY_JOLTIK
static const struct LevelUpMove sJoltikLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 4, MOVE_ELECTROWEB),
    LEVEL_UP_MOVE( 8, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(37, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(44, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_ELECTROWEB),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(12, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(20, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(39, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(44, MOVE_SCREECH),
    LEVEL_UP_MOVE(50, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_JOLTIK

#if P_FAMILY_FERROSEED
static const struct LevelUpMove sFerroseedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(10, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(15, MOVE_INGRAIN),
    LEVEL_UP_MOVE(20, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(30, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(41, MOVE_CURSE),
    LEVEL_UP_MOVE(45, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sFerrothornLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(15, MOVE_INGRAIN),
    LEVEL_UP_MOVE(20, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(30, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(35, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_CURSE),
    LEVEL_UP_MOVE(49, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(56, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_FERROSEED

#if P_FAMILY_KLINK
static const struct LevelUpMove sKlinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 4, MOVE_BIND),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(24, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(28, MOVE_SCREECH),
    LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE(36, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(44, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(48, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sKlangLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(24, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(28, MOVE_SCREECH),
    LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE(36, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(42, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sKlinklangLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GEAR_UP),
    LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(20, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(24, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(28, MOVE_SCREECH),
    LEVEL_UP_MOVE(32, MOVE_GEAR_GRIND),
    LEVEL_UP_MOVE(36, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(42, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(64, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_KLINK

#if P_FAMILY_TYNAMO
static const struct LevelUpMove sTynamoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sEelektrikLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 9, MOVE_BIND),
    LEVEL_UP_MOVE(19, MOVE_ACID),
    LEVEL_UP_MOVE(29, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(44, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(49, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(54, MOVE_COIL),
    LEVEL_UP_MOVE(59, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(64, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(69, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(74, MOVE_THRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sEelektrossLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE( 1, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE( 1, MOVE_COIL),
    LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE),
    LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_DISCHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYNAMO

#if P_FAMILY_ELGYEM
static const struct LevelUpMove sElgyemLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_IMPRISON),
    LEVEL_UP_MOVE(12, MOVE_TELEPORT),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(24, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(30, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(43, MOVE_RECOVER),
    LEVEL_UP_MOVE(48, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(54, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(60, MOVE_PSYCHIC),
    LEVEL_UP_END
};

static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(24, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(30, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(45, MOVE_RECOVER),
    LEVEL_UP_MOVE(52, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(60, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(68, MOVE_PSYCHIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_ELGYEM

#if P_FAMILY_LITWICK
static const struct LevelUpMove sLitwickLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 4, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(16, MOVE_HEX),
    LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(32, MOVE_CURSE),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(40, MOVE_INFERNO),
    LEVEL_UP_MOVE(44, MOVE_IMPRISON),
    LEVEL_UP_MOVE(48, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(52, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(56, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sLampentLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(16, MOVE_HEX),
    LEVEL_UP_MOVE(20, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(24, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(32, MOVE_CURSE),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(40, MOVE_INFERNO),
    LEVEL_UP_MOVE(46, MOVE_IMPRISON),
    LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(58, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(64, MOVE_MEMENTO),
    LEVEL_UP_END
};

static const struct LevelUpMove sChandelureLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE( 1, MOVE_INFERNO),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE( 1, MOVE_OVERHEAT),
    LEVEL_UP_MOVE( 1, MOVE_MEMENTO),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_END
};
#endif //P_FAMILY_LITWICK

#if P_FAMILY_AXEW
static const struct LevelUpMove sAxewLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 9, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(12, MOVE_TAUNT),
    LEVEL_UP_MOVE(15, MOVE_SLASH),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(30, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(33, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(39, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(45, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(48, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sFraxureLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 9, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(12, MOVE_TAUNT),
    LEVEL_UP_MOVE(15, MOVE_SLASH),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(30, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(33, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(46, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(51, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sHaxorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE( 9, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(12, MOVE_TAUNT),
    LEVEL_UP_MOVE(15, MOVE_SLASH),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(27, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(30, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE(33, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(46, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(53, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_AXEW

#if P_FAMILY_CUBCHOO
static const struct LevelUpMove sCubchooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_ENDURE),
    LEVEL_UP_MOVE( 6, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(15, MOVE_BRINE),
    LEVEL_UP_MOVE(18, MOVE_FROST_BREATH),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_CHARM),
    LEVEL_UP_MOVE(30, MOVE_HAIL),
    LEVEL_UP_MOVE(33, MOVE_THRASH),
    LEVEL_UP_MOVE(36, MOVE_REST),
    LEVEL_UP_MOVE(39, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(42, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

static const struct LevelUpMove sBearticLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_CHARM),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE(15, MOVE_BRINE),
    LEVEL_UP_MOVE(18, MOVE_FROST_BREATH),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_SWAGGER),
    LEVEL_UP_MOVE(30, MOVE_HAIL),
    LEVEL_UP_MOVE(33, MOVE_THRASH),
    LEVEL_UP_MOVE(36, MOVE_REST),
    LEVEL_UP_MOVE(41, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(46, MOVE_SHEER_COLD),
    LEVEL_UP_MOVE(51, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_CUBCHOO

#if P_FAMILY_CRYOGONAL
static const struct LevelUpMove sCryogonalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(12, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(16, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(20, MOVE_HAZE),
    LEVEL_UP_MOVE(24, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(32, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(40, MOVE_REFLECT),
    LEVEL_UP_MOVE(44, MOVE_RECOVER),
    LEVEL_UP_MOVE(48, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(52, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(60, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRYOGONAL

#if P_FAMILY_SHELMET
static const struct LevelUpMove sShelmetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 4, MOVE_ACID),
    LEVEL_UP_MOVE( 8, MOVE_CURSE),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(20, MOVE_YAWN),
    LEVEL_UP_MOVE(24, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sAccelgorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_SHURIKEN),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_CURSE),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(20, MOVE_SWIFT),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(36, MOVE_U_TURN),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(44, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_FINAL_GAMBIT),
    LEVEL_UP_MOVE(52, MOVE_TOXIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHELMET

#if P_FAMILY_STUNFISK
static const struct LevelUpMove sStunfiskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_ENDURE),
    LEVEL_UP_MOVE(10, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_REVENGE),
    LEVEL_UP_MOVE(20, MOVE_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(35, MOVE_BOUNCE),
    LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(45, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(50, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_FISSURE),
    LEVEL_UP_END
};

#if P_GALARIAN_FORMS
static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 5, MOVE_ENDURE),
    LEVEL_UP_MOVE(10, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_REVENGE),
    LEVEL_UP_MOVE(20, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(35, MOVE_BOUNCE),
    LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP),
    LEVEL_UP_MOVE(50, MOVE_FLAIL),
    LEVEL_UP_MOVE(55, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_STUNFISK

#if P_FAMILY_MIENFOO
static const struct LevelUpMove sMienfooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 5, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(10, MOVE_REVERSAL),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(20, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(25, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(35, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(45, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(51, MOVE_BOUNCE),
    LEVEL_UP_MOVE(55, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(60, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_END
};

static const struct LevelUpMove sMienshaoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE(15, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(20, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(25, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(35, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(45, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(53, MOVE_BOUNCE),
    LEVEL_UP_MOVE(59, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(66, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_MIENFOO

#if P_FAMILY_DRUDDIGON
static const struct LevelUpMove sDruddigonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(15, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(50, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(55, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRUDDIGON

#if P_FAMILY_GOLETT
static const struct LevelUpMove sGolettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_POUND),
    LEVEL_UP_MOVE(12, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(16, MOVE_CURSE),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(40, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(44, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(48, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolurkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE(12, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(16, MOVE_CURSE),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(32, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(40, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(52, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(64, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOLETT

#if P_FAMILY_PAWNIARD
static const struct LevelUpMove sPawniardLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(10, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(15, MOVE_TORMENT),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(55, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(65, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBisharpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(15, MOVE_TORMENT),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(57, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(71, MOVE_GUILLOTINE),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sKingambitLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE(15, MOVE_TORMENT),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(30, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_SLASH),
    LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_RETALIATE),
    LEVEL_UP_MOVE(57, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(71, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_PAWNIARD

#if P_FAMILY_BOUFFALANT
static const struct LevelUpMove sBouffalantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_REVENGE),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(30, MOVE_REVERSAL),
    LEVEL_UP_MOVE(35, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(40, MOVE_HEAD_CHARGE),
    LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(50, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(55, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_BOUFFALANT

#if P_FAMILY_RUFFLET
static const struct LevelUpMove sRuffletLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_TAILWIND),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(55, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(60, MOVE_DEFOG),
    LEVEL_UP_MOVE(66, MOVE_THRASH),
    LEVEL_UP_MOVE(72, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sBraviaryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(18, MOVE_TAILWIND),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(57, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(64, MOVE_DEFOG),
    LEVEL_UP_MOVE(72, MOVE_THRASH),
    LEVEL_UP_MOVE(80, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(11, MOVE_TWISTER),
    LEVEL_UP_MOVE(18, MOVE_SLASH),
    LEVEL_UP_MOVE(20, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(25, MOVE_ESPER_WING),
    LEVEL_UP_MOVE(25, MOVE_ROOST),
    LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(52, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_RUFFLET

#if P_FAMILY_VULLABY
static const struct LevelUpMove sVullabyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_FLATTER),
    LEVEL_UP_MOVE(12, MOVE_PLUCK),
    LEVEL_UP_MOVE(18, MOVE_TAILWIND),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(42, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(48, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(54, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(60, MOVE_DEFOG),
    LEVEL_UP_MOVE(66, MOVE_ATTRACT),
    LEVEL_UP_MOVE(72, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE( 1, MOVE_BONE_RUSH),
    LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE( 1, MOVE_PLUCK),
    LEVEL_UP_MOVE(18, MOVE_TAILWIND),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(42, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(48, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(57, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(64, MOVE_DEFOG),
    LEVEL_UP_MOVE(72, MOVE_ATTRACT),
    LEVEL_UP_MOVE(80, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_VULLABY

#if P_FAMILY_HEATMOR
static const struct LevelUpMove sHeatmorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(10, MOVE_INCINERATE),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(20, MOVE_SWALLOW),
    LEVEL_UP_MOVE(20, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_BIND),
    LEVEL_UP_MOVE(35, MOVE_FIRE_LASH),
    LEVEL_UP_MOVE(40, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(45, MOVE_AMNESIA),
    LEVEL_UP_MOVE(50, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(55, MOVE_INFERNO),
    LEVEL_UP_MOVE(60, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_HEATMOR

#if P_FAMILY_DURANT
static const struct LevelUpMove sDurantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 4, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(12, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(16, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_DIG),
    LEVEL_UP_MOVE(32, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(44, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(48, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(52, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(56, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DURANT

#if P_FAMILY_DEINO
static const struct LevelUpMove sDeinoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 4, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_WORK_UP),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(44, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(52, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(60, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sZweilousLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_WORK_UP),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(44, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(54, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(66, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHydreigonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_ROAR),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_WORK_UP),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(44, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(54, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(60, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(68, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(76, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEINO

#if P_FAMILY_LARVESTA
static const struct LevelUpMove sLarvestaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 6, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(24, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(30, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(54, MOVE_AMNESIA),
    LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(66, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_FIERY_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(24, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(30, MOVE_SCREECH),
    LEVEL_UP_MOVE(36, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(48, MOVE_HEAT_WAVE),
    LEVEL_UP_MOVE(54, MOVE_AMNESIA),
    LEVEL_UP_MOVE(62, MOVE_HURRICANE),
    LEVEL_UP_MOVE(70, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(78, MOVE_RAGE_POWDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_LARVESTA

#if P_FAMILY_COBALION
static const struct LevelUpMove sCobalionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 7, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_RETALIATE),
    LEVEL_UP_MOVE(35, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(63, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_COBALION

#if P_FAMILY_TERRAKION
static const struct LevelUpMove sTerrakionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 7, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_RETALIATE),
    LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(63, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_TERRAKION

#if P_FAMILY_VIRIZION
static const struct LevelUpMove sVirizionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_RETALIATE),
    LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(63, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VIRIZION

#if P_FAMILY_TORNADUS
static const struct LevelUpMove sTornadusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_SWAGGER),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_TAILWIND),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(50, MOVE_UPROAR),
    LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(60, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(65, MOVE_HURRICANE),
    LEVEL_UP_MOVE(70, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TORNADUS

#if P_FAMILY_THUNDURUS
static const struct LevelUpMove sThundurusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_SWAGGER),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_CHARGE),
    LEVEL_UP_MOVE(35, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(50, MOVE_UPROAR),
    LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(60, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(65, MOVE_THUNDER),
    LEVEL_UP_MOVE(70, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_THUNDURUS

#if P_FAMILY_RESHIRAM
static const struct LevelUpMove sReshiramLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 8, MOVE_SLASH),
    LEVEL_UP_MOVE(16, MOVE_CRUNCH),
    LEVEL_UP_MOVE(24, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(48, MOVE_FUSION_FLARE),
    LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(64, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(72, MOVE_IMPRISON),
    LEVEL_UP_MOVE(80, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(88, MOVE_BLUE_FLARE),
    LEVEL_UP_END
};
#endif //P_FAMILY_RESHIRAM

#if P_FAMILY_ZEKROM
static const struct LevelUpMove sZekromLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 8, MOVE_SLASH),
    LEVEL_UP_MOVE(16, MOVE_CRUNCH),
    LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(48, MOVE_FUSION_BOLT),
    LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(64, MOVE_THUNDER),
    LEVEL_UP_MOVE(72, MOVE_IMPRISON),
    LEVEL_UP_MOVE(80, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(88, MOVE_BOLT_STRIKE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZEKROM

#if P_FAMILY_LANDORUS
static const struct LevelUpMove sLandorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_BLOCK),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(30, MOVE_IMPRISON),
    LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(40, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(50, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(55, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(60, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(65, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(70, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(75, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_LANDORUS

#if P_FAMILY_KYUREM
static const struct LevelUpMove sKyuremLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 8, MOVE_SLASH),
    LEVEL_UP_MOVE(16, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(32, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(48, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(64, MOVE_IMPRISON),
    LEVEL_UP_MOVE(72, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(80, MOVE_GLACIATE),
    LEVEL_UP_MOVE(88, MOVE_SHEER_COLD),
    LEVEL_UP_END
};

#if P_FUSION_FORMS
static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 8, MOVE_SLASH),
    LEVEL_UP_MOVE(16, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(32, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(48, MOVE_FUSION_FLARE),
    LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(64, MOVE_IMPRISON),
    LEVEL_UP_MOVE(72, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(80, MOVE_ICE_BURN),
    LEVEL_UP_MOVE(88, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS

#if P_FUSION_FORMS
static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE( 8, MOVE_SLASH),
    LEVEL_UP_MOVE(16, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(32, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(48, MOVE_FUSION_BOLT),
    LEVEL_UP_MOVE(56, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(64, MOVE_IMPRISON),
    LEVEL_UP_MOVE(72, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(80, MOVE_FREEZE_SHOCK),
    LEVEL_UP_MOVE(88, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS
#endif //P_FAMILY_KYUREM

#if P_FAMILY_KELDEO
static const struct LevelUpMove sKeldeoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SECRET_SWORD),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(14, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(21, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(28, MOVE_RETALIATE),
    LEVEL_UP_MOVE(35, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(70, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KELDEO

#if P_FAMILY_MELOETTA
static const struct LevelUpMove sMeloettaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROUND),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_CONFUSION),
    LEVEL_UP_MOVE(16, MOVE_SING),
    LEVEL_UP_MOVE(21, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(26, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(31, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(36, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(43, MOVE_U_TURN),
    LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP),
    LEVEL_UP_MOVE(57, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(71, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(78, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(85, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_MELOETTA

#if P_FAMILY_GENESECT
static const struct LevelUpMove sGenesectLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_SCREECH),
    LEVEL_UP_MOVE(14, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(21, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(28, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(35, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(42, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(49, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(63, MOVE_SIMPLE_BEAM),
    LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(77, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(84, MOVE_TECHNO_BLAST),
    LEVEL_UP_MOVE(91, MOVE_SELF_DESTRUCT),
    LEVEL_UP_END
};
#endif //P_FAMILY_GENESECT

#if P_FAMILY_CHESPIN
static const struct LevelUpMove sChespinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(35, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(39, MOVE_BULK_UP),
    LEVEL_UP_MOVE(42, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(45, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_WOOD_HAMMER),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuilladinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE( 1, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(19, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(39, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(44, MOVE_BULK_UP),
    LEVEL_UP_MOVE(48, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(52, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(56, MOVE_WOOD_HAMMER),
    LEVEL_UP_END
};

static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_NEEDLE_ARM),
    LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 5, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(19, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(41, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(48, MOVE_BULK_UP),
    LEVEL_UP_MOVE(54, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(60, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(78, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHESPIN

#if P_FAMILY_FENNEKIN
static const struct LevelUpMove sFennekinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(25, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(27, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(31, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(35, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(43, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(46, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(48, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sBraixenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(28, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(36, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(45, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(52, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(56, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(59, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sDelphoxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE(11, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(18, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(22, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(28, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(38, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(45, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(51, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(57, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(62, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(68, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(74, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(80, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FENNEKIN

#if P_FAMILY_FROAKIE
static const struct LevelUpMove sFroakieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_LICK),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(18, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(21, MOVE_ROUND),
    LEVEL_UP_MOVE(25, MOVE_FLING),
    LEVEL_UP_MOVE(29, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(39, MOVE_BOUNCE),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(48, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sFrogadierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_LICK),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(23, MOVE_ROUND),
    LEVEL_UP_MOVE(28, MOVE_FLING),
    LEVEL_UP_MOVE(33, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGreninjaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WATER_SHURIKEN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_SHURIKEN),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_LICK),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE(23, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(28, MOVE_SPIKES),
    LEVEL_UP_MOVE(33, MOVE_FEINT_ATTACK),
    LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(70, MOVE_HAZE),
    LEVEL_UP_MOVE(77, MOVE_NIGHT_SLASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_FROAKIE

#if P_FAMILY_BUNNELBY
static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_FLAIL),
    LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(21, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_DIG),
    LEVEL_UP_MOVE(27, MOVE_BOUNCE),
    LEVEL_UP_MOVE(30, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(39, MOVE_SUPER_FANG),
    LEVEL_UP_END
};

static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE( 9, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_FLAIL),
    LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(23, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(28, MOVE_DIG),
    LEVEL_UP_MOVE(33, MOVE_BOUNCE),
    LEVEL_UP_MOVE(38, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(43, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(53, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(58, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUNNELBY

#if P_FAMILY_FLETCHLING
static const struct LevelUpMove sFletchlingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(25, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(35, MOVE_TAILWIND),
    LEVEL_UP_MOVE(40, MOVE_STEEL_WING),
    LEVEL_UP_MOVE(45, MOVE_ROOST),
    LEVEL_UP_MOVE(50, MOVE_FLY),
    LEVEL_UP_END
};

static const struct LevelUpMove sFletchinderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_FLAIL),
    LEVEL_UP_MOVE(22, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(43, MOVE_TAILWIND),
    LEVEL_UP_MOVE(50, MOVE_STEEL_WING),
    LEVEL_UP_MOVE(57, MOVE_ROOST),
    LEVEL_UP_MOVE(64, MOVE_FLY),
    LEVEL_UP_END
};

static const struct LevelUpMove sTalonflameLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_FLAIL),
    LEVEL_UP_MOVE(22, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(47, MOVE_TAILWIND),
    LEVEL_UP_MOVE(56, MOVE_STEEL_WING),
    LEVEL_UP_MOVE(65, MOVE_ROOST),
    LEVEL_UP_MOVE(74, MOVE_FLY),
    LEVEL_UP_MOVE(83, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLETCHLING

#if P_FAMILY_SCATTERBUG
static const struct LevelUpMove sScatterbugLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpewpaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_END
};

static const struct LevelUpMove sVivillonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(12, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(17, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(21, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(25, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(31, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(35, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(41, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(45, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE(50, MOVE_HURRICANE),
    LEVEL_UP_MOVE(55, MOVE_POWDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCATTERBUG

#if P_FAMILY_LITLEO
static const struct LevelUpMove sLitleoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_WORK_UP),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(46, MOVE_INCINERATE),
    LEVEL_UP_MOVE(50, MOVE_OVERHEAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPyroarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 5, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_WORK_UP),
    LEVEL_UP_MOVE(11, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(23, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(28, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(33, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(38, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(51, MOVE_INCINERATE),
    LEVEL_UP_MOVE(57, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_LITLEO

#if P_FAMILY_FLABEBE
static const struct LevelUpMove sFlabebeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_WISH),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(24, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(28, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(33, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(41, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloetteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_WISH),
    LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(46, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_WISH),
    LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(46, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlorgesLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT),
    LEVEL_UP_MOVE( 1, MOVE_WISH),
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_FLOWER_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLABEBE

#if P_FAMILY_SKIDDO
static const struct LevelUpMove sSkiddoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(20, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(26, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(30, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_BULK_UP),
    LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(50, MOVE_MILK_DRINK),
    LEVEL_UP_END
};

static const struct LevelUpMove sGogoatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE( 1, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(20, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(26, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(30, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_BULK_UP),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(47, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(58, MOVE_MILK_DRINK),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKIDDO

#if P_FAMILY_PANCHAM
static const struct LevelUpMove sPanchamLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 8, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(16, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(20, MOVE_WORK_UP),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(28, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(33, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_PARTING_SHOT),
    LEVEL_UP_MOVE(44, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};

static const struct LevelUpMove sPangoroLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(16, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(20, MOVE_WORK_UP),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(28, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(35, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(46, MOVE_PARTING_SHOT),
    LEVEL_UP_MOVE(52, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(58, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_PANCHAM

#if P_FAMILY_FURFROU
static const struct LevelUpMove sFurfrouLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(22, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(33, MOVE_RETALIATE),
    LEVEL_UP_MOVE(35, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(38, MOVE_CHARM),
    LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_FURFROU

#if P_FAMILY_ESPURR
static const struct LevelUpMove sEspurrLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 3, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 6, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(18, MOVE_COVET),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(30, MOVE_REFLECT),
    LEVEL_UP_MOVE(33, MOVE_PSYSHOCK),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(15, MOVE_CHARM),
    LEVEL_UP_MOVE(18, MOVE_COVET),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_REFLECT),
    LEVEL_UP_MOVE(39, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(44, MOVE_IMPRISON),
    LEVEL_UP_MOVE(49, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(54, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(59, MOVE_MISTY_TERRAIN),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(15, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(18, MOVE_COVET),
    LEVEL_UP_MOVE(21, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(34, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(34, MOVE_REFLECT),
    LEVEL_UP_MOVE(39, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(44, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(49, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(59, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ESPURR

#if P_FAMILY_HONEDGE
static const struct LevelUpMove sHonedgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 4, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 8, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(28, MOVE_RETALIATE),
    LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(48, MOVE_SACRED_SWORD),
    LEVEL_UP_END
};

static const struct LevelUpMove sDoubladeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(28, MOVE_RETALIATE),
    LEVEL_UP_MOVE(32, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(38, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(44, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(56, MOVE_SACRED_SWORD),
    LEVEL_UP_END
};

static const struct LevelUpMove sAegislashLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_KINGS_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_KINGS_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE( 1, MOVE_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_RETALIATE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_END
};
#endif //P_FAMILY_HONEDGE

#if P_FAMILY_SPRITZEE
static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 3, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(18, MOVE_ATTRACT),
    LEVEL_UP_MOVE(21, MOVE_FLAIL),
    LEVEL_UP_MOVE(24, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(27, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(30, MOVE_CHARM),
    LEVEL_UP_MOVE(33, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(36, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(39, MOVE_SKILL_SWAP),
    LEVEL_UP_END
};

static const struct LevelUpMove sAromatisseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(12, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(18, MOVE_ATTRACT),
    LEVEL_UP_MOVE(21, MOVE_FLAIL),
    LEVEL_UP_MOVE(24, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(27, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(30, MOVE_CHARM),
    LEVEL_UP_MOVE(33, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(36, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(39, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(42, MOVE_PSYCH_UP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPRITZEE

#if P_FAMILY_SWIRLIX
static const struct LevelUpMove sSwirlixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 3, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 9, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(15, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(18, MOVE_ROUND),
    LEVEL_UP_MOVE(21, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(24, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(27, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(30, MOVE_WISH),
    LEVEL_UP_MOVE(33, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(39, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 9, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(12, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(15, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(18, MOVE_ROUND),
    LEVEL_UP_MOVE(21, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(24, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE(27, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(30, MOVE_WISH),
    LEVEL_UP_MOVE(33, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(39, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(42, MOVE_STICKY_WEB),
    LEVEL_UP_END
};
#endif //P_FAMILY_SWIRLIX

#if P_FAMILY_INKAY
static const struct LevelUpMove sInkayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 6, MOVE_WRAP),
    LEVEL_UP_MOVE( 9, MOVE_PAYBACK),
    LEVEL_UP_MOVE(12, MOVE_PLUCK),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(18, MOVE_SWAGGER),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(27, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(31, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(33, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(36, MOVE_TOPSY_TURVY),
    LEVEL_UP_MOVE(39, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMalamarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 9, MOVE_PAYBACK),
    LEVEL_UP_MOVE(12, MOVE_PLUCK),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(18, MOVE_SWAGGER),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(27, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(33, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(37, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(42, MOVE_TOPSY_TURVY),
    LEVEL_UP_MOVE(47, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_INKAY

#if P_FAMILY_BINACLE
static const struct LevelUpMove sBinacleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 4, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(40, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(44, MOVE_CROSS_CHOP),
    LEVEL_UP_END
};

static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(12, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(24, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(36, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(42, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(48, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BINACLE

#if P_FAMILY_SKRELP
static const struct LevelUpMove sSkrelpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 5, MOVE_ACID),
    LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(25, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(30, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(35, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(50, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragalgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(15, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(25, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE(30, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(35, MOVE_TOXIC),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(45, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(52, MOVE_SLUDGE_BOMB),
    LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(66, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKRELP

#if P_FAMILY_CLAUNCHER
static const struct LevelUpMove sClauncherLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE(10, MOVE_FLAIL),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(30, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(40, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(45, MOVE_BOUNCE),
    LEVEL_UP_MOVE(50, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(55, MOVE_CRABHAMMER),
    LEVEL_UP_END
};

static const struct LevelUpMove sClawitzerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE(15, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(30, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(49, MOVE_BOUNCE),
    LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(63, MOVE_CRABHAMMER),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLAUNCHER

#if P_FAMILY_HELIOPTILE
static const struct LevelUpMove sHelioptileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_POUND),
    LEVEL_UP_MOVE( 8, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(24, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(28, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_MOVE(32, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(36, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(40, MOVE_ELECTRIFY),
    LEVEL_UP_MOVE(44, MOVE_THUNDER),
    LEVEL_UP_END
};

static const struct LevelUpMove sHelioliskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_DISCHARGE),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_END
};
#endif //P_FAMILY_HELIOPTILE

#if P_FAMILY_TYRUNT
static const struct LevelUpMove sTyruntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_ROAR),
    LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(12, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(24, MOVE_STOMP),
    LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(40, MOVE_THRASH),
    LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(48, MOVE_HORN_DRILL),
    LEVEL_UP_END
};

static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(12, MOVE_CHARM),
    LEVEL_UP_MOVE(16, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(24, MOVE_STOMP),
    LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_HORN_DRILL),
    LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYRUNT

#if P_FAMILY_AMAURA
static const struct LevelUpMove sAmauraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_ENCORE),
    LEVEL_UP_MOVE( 8, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(12, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(28, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(40, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(44, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(48, MOVE_HAIL),
    LEVEL_UP_MOVE(52, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(56, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sAurorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(12, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(20, MOVE_MIST),
    LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(28, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(42, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(48, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(54, MOVE_HAIL),
    LEVEL_UP_MOVE(60, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_AMAURA

#if P_FAMILY_HAWLUCHA
static const struct LevelUpMove sHawluchaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 4, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_DETECT),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_ENCORE),
    LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(24, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(28, MOVE_BOUNCE),
    LEVEL_UP_MOVE(32, MOVE_TAUNT),
    LEVEL_UP_MOVE(36, MOVE_ROOST),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(44, MOVE_FLYING_PRESS),
    LEVEL_UP_MOVE(48, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_MOVE(52, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(56, MOVE_SKY_ATTACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_HAWLUCHA

#if P_FAMILY_DEDENNE
static const struct LevelUpMove sDedenneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_TACKLE),
    LEVEL_UP_MOVE(10, MOVE_CHARGE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(20, MOVE_CHARM),
    LEVEL_UP_MOVE(25, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_MOVE(30, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(35, MOVE_SNORE),
    LEVEL_UP_MOVE(40, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(50, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(55, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(60, MOVE_THUNDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEDENNE

#if P_FAMILY_CARBINK
static const struct LevelUpMove sCarbinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(15, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(35, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(40, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(45, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(50, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(55, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CARBINK

#if P_FAMILY_GOOMY
static const struct LevelUpMove sGoomyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_FLAIL),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(41, MOVE_CURSE),
    LEVEL_UP_MOVE(45, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(50, MOVE_MUDDY_WATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sSliggooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_FLAIL),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(43, MOVE_CURSE),
    LEVEL_UP_MOVE(49, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGoodraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_FLAIL),
    LEVEL_UP_MOVE(25, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(43, MOVE_CURSE),
    LEVEL_UP_MOVE(49, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(58, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(67, MOVE_POWER_WHIP),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(34, MOVE_SHELTER),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(18, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(25, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(34, MOVE_SHELTER),
    LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_GOOMY

#if P_FAMILY_KLEFKI
static const struct LevelUpMove sKlefkiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_TACKLE),
    LEVEL_UP_MOVE( 8, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(12, MOVE_TORMENT),
    LEVEL_UP_MOVE(16, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(20, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(24, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(28, MOVE_RECYCLE),
    LEVEL_UP_MOVE(32, MOVE_IMPRISON),
    LEVEL_UP_MOVE(36, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(44, MOVE_MAGIC_ROOM),
    LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(52, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KLEFKI

#if P_FAMILY_PHANTUMP
static const struct LevelUpMove sPhantumpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_GROWTH),
    LEVEL_UP_MOVE(28, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(32, MOVE_CURSE),
    LEVEL_UP_MOVE(36, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(40, MOVE_INGRAIN),
    LEVEL_UP_MOVE(44, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(52, MOVE_FORESTS_CURSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTrevenantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_GROWTH),
    LEVEL_UP_MOVE(28, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(32, MOVE_CURSE),
    LEVEL_UP_MOVE(36, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(40, MOVE_INGRAIN),
    LEVEL_UP_MOVE(44, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(52, MOVE_FORESTS_CURSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PHANTUMP

#if P_FAMILY_PUMPKABOO
static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TRICK_OR_TREAT),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_TRICK_OR_TREAT),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(32, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(40, MOVE_TRICK),
    LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGourgeistLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_MOONBLAST),
    LEVEL_UP_MOVE( 1, MOVE_TRICK_OR_TREAT),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_TRICK_OR_TREAT),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(32, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(40, MOVE_TRICK),
    LEVEL_UP_MOVE(44, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PUMPKABOO

#if P_FAMILY_BERGMITE
static const struct LevelUpMove sBergmiteLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 3, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 9, MOVE_CURSE),
    LEVEL_UP_MOVE(12, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(18, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(33, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(39, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sAvaluggLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 9, MOVE_CURSE),
    LEVEL_UP_MOVE(12, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(15, MOVE_PROTECT),
    LEVEL_UP_MOVE(18, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(33, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(41, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(51, MOVE_SKULL_BASH),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(29, MOVE_CRUNCH),
    LEVEL_UP_MOVE(29, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(37, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE),
    LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_BERGMITE

#if P_FAMILY_NOIBAT
static const struct LevelUpMove sNoibatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_GUST),
    LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(16, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(28, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(32, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(44, MOVE_ROOST),
    LEVEL_UP_MOVE(49, MOVE_TAILWIND),
    LEVEL_UP_MOVE(52, MOVE_HURRICANE),
    LEVEL_UP_END
};

static const struct LevelUpMove sNoivernLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(16, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(28, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(32, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(44, MOVE_ROOST),
    LEVEL_UP_MOVE(51, MOVE_TAILWIND),
    LEVEL_UP_MOVE(56, MOVE_HURRICANE),
    LEVEL_UP_MOVE(62, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_NOIBAT

#if P_FAMILY_XERNEAS
static const struct LevelUpMove sXerneasLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(10, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(15, MOVE_NATURE_POWER),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(25, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(30, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(35, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(40, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(45, MOVE_INGRAIN),
    LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(55, MOVE_GEOMANCY),
    LEVEL_UP_MOVE(60, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(65, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(70, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(80, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(85, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_XERNEAS

#if P_FAMILY_YVELTAL
static const struct LevelUpMove sYveltalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 5, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_SNARL),
    LEVEL_UP_MOVE(15, MOVE_DISABLE),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_TAILWIND),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(50, MOVE_OBLIVION_WING),
    LEVEL_UP_MOVE(55, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(60, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(65, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(70, MOVE_HURRICANE),
    LEVEL_UP_MOVE(75, MOVE_FOCUS_BLAST),
    LEVEL_UP_MOVE(80, MOVE_SKY_ATTACK),
    LEVEL_UP_MOVE(85, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_YVELTAL

#if P_FAMILY_ZYGARDE
static const struct LevelUpMove sZygardeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THOUSAND_ARROWS),
    LEVEL_UP_MOVE( 1, MOVE_THOUSAND_WAVES),
    LEVEL_UP_MOVE( 1, MOVE_CORE_ENFORCER),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_BULLDOZE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_HAZE),
    LEVEL_UP_MOVE(16, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(32, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(48, MOVE_LANDS_WRATH),
    LEVEL_UP_MOVE(56, MOVE_GLARE),
    LEVEL_UP_MOVE(64, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(72, MOVE_COIL),
    LEVEL_UP_MOVE(80, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(88, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZYGARDE

#if P_FAMILY_DIANCIE
static const struct LevelUpMove sDiancieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(14, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(21, MOVE_FLAIL),
    LEVEL_UP_MOVE(28, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(35, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(49, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(56, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(63, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(70, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(77, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(84, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(91, MOVE_DIAMOND_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_DIANCIE

#if P_FAMILY_HOOPA
static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE),
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(46, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE(55, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(68, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(75, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_HOLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_FURY),
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE(55, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(75, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY),
    LEVEL_UP_END
};
#endif //P_FAMILY_HOOPA

#if P_FAMILY_VOLCANION
static const struct LevelUpMove sVolcanionLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_LEER),
    LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(18, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(24, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(36, MOVE_INCINERATE),
    LEVEL_UP_MOVE(42, MOVE_STOMP),
    LEVEL_UP_MOVE(48, MOVE_SCALD),
    LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(60, MOVE_MIST),
    LEVEL_UP_MOVE(60, MOVE_HAZE),
    LEVEL_UP_MOVE(66, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(72, MOVE_STEAM_ERUPTION),
    LEVEL_UP_MOVE(78, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(84, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(90, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_VOLCANION

#if P_FAMILY_ROWLET
static const struct LevelUpMove sRowletLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_PECK),
    LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(18, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(21, MOVE_PLUCK),
    LEVEL_UP_MOVE(24, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(27, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sDartrixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_PECK),
    LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(25, MOVE_PLUCK),
    LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(45, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPIRIT_SHACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SPIRIT_SHACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE( 1, MOVE_U_TURN),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_PECK),
    LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(25, MOVE_PLUCK),
    LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(51, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(58, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

#if P_HISUIAN_FORMS
static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 6, MOVE_LEAFAGE),
    LEVEL_UP_MOVE(11, MOVE_ROOST),
    LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(25, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS),
    LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(43, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_HISUIAN_FORMS
#endif //P_FAMILY_ROWLET

#if P_FAMILY_LITTEN
static const struct LevelUpMove sLittenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_EMBER),
    LEVEL_UP_MOVE( 6, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(21, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(27, MOVE_SWAGGER),
    LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(33, MOVE_THRASH),
    LEVEL_UP_MOVE(36, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sTorracatLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(25, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(35, MOVE_SWAGGER),
    LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(45, MOVE_THRASH),
    LEVEL_UP_MOVE(50, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};

static const struct LevelUpMove sIncineroarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DARKEST_LARIAT),
    LEVEL_UP_MOVE( 1, MOVE_DARKEST_LARIAT),
    LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_BULK_UP),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(20, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(25, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(44, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(51, MOVE_THRASH),
    LEVEL_UP_MOVE(58, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_LITTEN

#if P_FAMILY_POPPLIO
static const struct LevelUpMove sPopplioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 6, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(15, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(18, MOVE_SING),
    LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(24, MOVE_ENCORE),
    LEVEL_UP_MOVE(27, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(33, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(36, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sBrionneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(15, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(20, MOVE_SING),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_ENCORE),
    LEVEL_UP_MOVE(35, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(40, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(45, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPARKLING_ARIA),
    LEVEL_UP_MOVE( 1, MOVE_SPARKLING_ARIA),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(12, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(15, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(20, MOVE_SING),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_ENCORE),
    LEVEL_UP_MOVE(37, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(51, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_POPPLIO

#if P_FAMILY_PIKIPEK
static const struct LevelUpMove sPikipekLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_PLUCK),
    LEVEL_UP_MOVE(19, MOVE_ROOST),
    LEVEL_UP_MOVE(21, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(27, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(31, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(33, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(37, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sTrumbeakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(21, MOVE_ROOST),
    LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(29, MOVE_SCREECH),
    LEVEL_UP_MOVE(32, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(37, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(40, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};

static const struct LevelUpMove sToucannonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BEAK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_BEAK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 3, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(21, MOVE_ROOST),
    LEVEL_UP_MOVE(24, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(30, MOVE_SCREECH),
    LEVEL_UP_MOVE(34, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(44, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PIKIPEK

#if P_FAMILY_YUNGOOS
static const struct LevelUpMove sYungoosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_PURSUIT),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(16, MOVE_BIDE),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(22, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(25, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(37, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(40, MOVE_YAWN),
    LEVEL_UP_MOVE(43, MOVE_THRASH),
    LEVEL_UP_MOVE(46, MOVE_REST),
    LEVEL_UP_END
};

static const struct LevelUpMove sGumshoosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 3, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_PURSUIT),
    LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_ODOR_SLEUTH),
    LEVEL_UP_MOVE(16, MOVE_BIDE),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(27, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(39, MOVE_CRUNCH),
    LEVEL_UP_MOVE(43, MOVE_HYPER_FANG),
    LEVEL_UP_MOVE(47, MOVE_YAWN),
    LEVEL_UP_MOVE(51, MOVE_THRASH),
    LEVEL_UP_MOVE(55, MOVE_REST),
    LEVEL_UP_END
};
#endif //P_FAMILY_YUNGOOS

#if P_FAMILY_GRUBBIN
static const struct LevelUpMove sGrubbinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 5, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE(10, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(30, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(35, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_DIG),
    LEVEL_UP_END
};

static const struct LevelUpMove sCharjabugLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(36, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(43, MOVE_CRUNCH),
    LEVEL_UP_MOVE(50, MOVE_DIG),
    LEVEL_UP_MOVE(57, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(64, MOVE_DISCHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sVikavoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_DIG),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_DISCHARGE),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(29, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(36, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(43, MOVE_GUILLOTINE),
    LEVEL_UP_MOVE(50, MOVE_FLY),
    LEVEL_UP_MOVE(57, MOVE_AGILITY),
    LEVEL_UP_MOVE(64, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_GRUBBIN

#if P_FAMILY_CRABRAWLER
static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_PAYBACK),
    LEVEL_UP_MOVE(33, MOVE_REVERSAL),
    LEVEL_UP_MOVE(37, MOVE_CRABHAMMER),
    LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrabominableLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 9, MOVE_LEER),
    LEVEL_UP_MOVE(13, MOVE_PURSUIT),
    LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(22, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE(25, MOVE_DIZZY_PUNCH),
    LEVEL_UP_MOVE(29, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(33, MOVE_REVERSAL),
    LEVEL_UP_MOVE(37, MOVE_ICE_HAMMER),
    LEVEL_UP_MOVE(42, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRABRAWLER

#if P_FAMILY_ORICORIO
static const struct LevelUpMove sOricorioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 4, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_PECK),
    LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(13, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(16, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(20, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(23, MOVE_DOUBLE_SLAP),
    LEVEL_UP_MOVE(26, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(30, MOVE_ROOST),
    LEVEL_UP_MOVE(33, MOVE_CAPTIVATE),
    LEVEL_UP_MOVE(36, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(40, MOVE_REVELATION_DANCE),
    LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE),
    LEVEL_UP_MOVE(46, MOVE_AGILITY),
    LEVEL_UP_MOVE(50, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ORICORIO

#if P_FAMILY_CUTIEFLY
static const struct LevelUpMove sCutieflyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(36, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(42, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(48, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(54, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRibombeeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_POLLEN_PUFF),
    LEVEL_UP_MOVE( 1, MOVE_POLLEN_PUFF),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(18, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(24, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(40, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(48, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(56, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(64, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_CUTIEFLY

#if P_FAMILY_ROCKRUFF
static const struct LevelUpMove sRockruffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(16, MOVE_HOWL),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(28, MOVE_ROAR),
    LEVEL_UP_MOVE(32, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(40, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(44, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(48, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(16, MOVE_HOWL),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(30, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(16, MOVE_HOWL),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(30, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_REVERSAL),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(12, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(16, MOVE_HOWL),
    LEVEL_UP_MOVE(20, MOVE_BITE),
    LEVEL_UP_MOVE(24, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(30, MOVE_ROAR),
    LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(54, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROCKRUFF

#if P_FAMILY_WISHIWASHI
static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 8, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(12, MOVE_BRINE),
    LEVEL_UP_MOVE(16, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(20, MOVE_DIVE),
    LEVEL_UP_MOVE(24, MOVE_SOAK),
    LEVEL_UP_MOVE(28, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(36, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(40, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_WISHIWASHI

#if P_FAMILY_MAREANIE
static const struct LevelUpMove sMareanieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 5, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(20, MOVE_RECOVER),
    LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(30, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(35, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(40, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(45, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(50, MOVE_TOXIC),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxapexLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BANEFUL_BUNKER),
    LEVEL_UP_MOVE( 1, MOVE_BANEFUL_BUNKER),
    LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(20, MOVE_RECOVER),
    LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(30, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(35, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(42, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(49, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(56, MOVE_TOXIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAREANIE

#if P_FAMILY_MUDBRAY
static const struct LevelUpMove sMudbrayLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 8, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(12, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(16, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_STRENGTH),
    LEVEL_UP_MOVE(24, MOVE_COUNTER),
    LEVEL_UP_MOVE(28, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(32, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(40, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(44, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(12, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(16, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_STRENGTH),
    LEVEL_UP_MOVE(24, MOVE_COUNTER),
    LEVEL_UP_MOVE(28, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(34, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(46, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(52, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUDBRAY

#if P_FAMILY_DEWPIDER
static const struct LevelUpMove sDewpiderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 4, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_CRUNCH),
    LEVEL_UP_MOVE(28, MOVE_SOAK),
    LEVEL_UP_MOVE(32, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(36, MOVE_LUNGE),
    LEVEL_UP_MOVE(40, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(44, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(48, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sAraquanidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(16, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(26, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_SOAK),
    LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(44, MOVE_LUNGE),
    LEVEL_UP_MOVE(50, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(56, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(62, MOVE_MIRROR_COAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_DEWPIDER

#if P_FAMILY_FOMANTIS
static const struct LevelUpMove sFomantisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 5, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_INGRAIN),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(35, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(40, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(45, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sLurantisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_SLASH),
    LEVEL_UP_MOVE(30, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(37, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(51, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(63, MOVE_SOLAR_BLADE),
    LEVEL_UP_END
};
#endif //P_FAMILY_FOMANTIS

#if P_FAMILY_MORELULL
static const struct LevelUpMove sMorelullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 8, MOVE_INGRAIN),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(25, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(36, MOVE_SPORE),
    LEVEL_UP_MOVE(40, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(44, MOVE_DREAM_EATER),
    LEVEL_UP_END
};

static const struct LevelUpMove sShiinoticLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_SLEEP_POWDER),
    LEVEL_UP_MOVE(20, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(27, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(32, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(38, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(44, MOVE_SPORE),
    LEVEL_UP_MOVE(50, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(56, MOVE_DREAM_EATER),
    LEVEL_UP_END
};
#endif //P_FAMILY_MORELULL

#if P_FAMILY_SALANDIT
static const struct LevelUpMove sSalanditLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 5, MOVE_SMOG),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(30, MOVE_INCINERATE),
    LEVEL_UP_MOVE(35, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(50, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(55, MOVE_TOXIC),
    LEVEL_UP_MOVE(60, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sSalazzleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FIRE_LASH),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_LASH),
    LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE( 1, MOVE_ENCORE),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(20, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(25, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(30, MOVE_INCINERATE),
    LEVEL_UP_MOVE(37, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(51, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(58, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(65, MOVE_TOXIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_SALANDIT

#if P_FAMILY_STUFFUL
static const struct LevelUpMove sStuffulLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 8, MOVE_PAYBACK),
    LEVEL_UP_MOVE(12, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(16, MOVE_ENDURE),
    LEVEL_UP_MOVE(20, MOVE_STRENGTH),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(36, MOVE_THRASH),
    LEVEL_UP_MOVE(40, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(48, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sBewearLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_PAYBACK),
    LEVEL_UP_MOVE(12, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(16, MOVE_ENDURE),
    LEVEL_UP_MOVE(20, MOVE_STRENGTH),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_FLAIL),
    LEVEL_UP_MOVE(36, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(48, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_STUFFUL

#if P_FAMILY_BOUNSWEET
static const struct LevelUpMove sBounsweetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 4, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 8, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(24, MOVE_FLAIL),
    LEVEL_UP_MOVE(28, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(32, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY),
    LEVEL_UP_END
};

static const struct LevelUpMove sSteeneeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(28, MOVE_STOMP),
    LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(40, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(46, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(52, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sTsareenaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TROP_KICK),
    LEVEL_UP_MOVE( 1, MOVE_TROP_KICK),
    LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_SWAGGER),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(22, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(28, MOVE_STOMP),
    LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE),
    LEVEL_UP_MOVE(40, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(46, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(52, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(58, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_BOUNSWEET

#if P_FAMILY_COMFEY
static const struct LevelUpMove sComfeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 3, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(12, MOVE_FLOWER_SHIELD),
    LEVEL_UP_MOVE(15, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(18, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(21, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(24, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE(27, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(30, MOVE_FLORAL_HEALING),
    LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(36, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(39, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(42, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(45, MOVE_PETAL_DANCE),
    LEVEL_UP_MOVE(48, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_COMFEY

#if P_FAMILY_ORANGURU
static const struct LevelUpMove sOranguruLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 5, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(10, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(15, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(20, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(25, MOVE_QUASH),
    LEVEL_UP_MOVE(30, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(40, MOVE_TRICK_ROOM),
    LEVEL_UP_MOVE(45, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(50, MOVE_INSTRUCT),
    LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ORANGURU

#if P_FAMILY_PASSIMIAN
static const struct LevelUpMove sPassimianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(15, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(20, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_FLING),
    LEVEL_UP_MOVE(35, MOVE_BULK_UP),
    LEVEL_UP_MOVE(40, MOVE_THRASH),
    LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(55, MOVE_REVERSAL),
    LEVEL_UP_MOVE(60, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_PASSIMIAN

#if P_FAMILY_WIMPOD
static const struct LevelUpMove sWimpodLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_END
};

static const struct LevelUpMove sGolisopodLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 4, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(16, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(44, MOVE_LIQUIDATION),
    LEVEL_UP_END
};
#endif //P_FAMILY_WIMPOD

#if P_FAMILY_SANDYGAST
static const struct LevelUpMove sSandygastLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(30, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(50, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(55, MOVE_SHORE_UP),
    LEVEL_UP_MOVE(60, MOVE_SANDSTORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sPalossandLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE(25, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(30, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(40, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(47, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(61, MOVE_SHORE_UP),
    LEVEL_UP_MOVE(68, MOVE_SANDSTORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SANDYGAST

#if P_FAMILY_PYUKUMUKU
static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BATON_PASS),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(10, MOVE_TAUNT),
    LEVEL_UP_MOVE(15, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(20, MOVE_COUNTER),
    LEVEL_UP_MOVE(25, MOVE_PURIFY),
    LEVEL_UP_MOVE(30, MOVE_CURSE),
    LEVEL_UP_MOVE(35, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(40, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(45, MOVE_RECOVER),
    LEVEL_UP_MOVE(50, MOVE_SOAK),
    LEVEL_UP_MOVE(55, MOVE_TOXIC),
    LEVEL_UP_MOVE(60, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_PYUKUMUKU

#if P_FAMILY_TYPE_NULL
static const struct LevelUpMove sTypeNullLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 5, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(10, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(20, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(30, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(35, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sSilvallyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MULTI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_MULTI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_POISON_FANG),
    LEVEL_UP_MOVE( 1, MOVE_IMPRISON),
    LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(20, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(25, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(30, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(35, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(40, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(45, MOVE_CRUNCH),
    LEVEL_UP_MOVE(50, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_TYPE_NULL

#if P_FAMILY_MINIOR
static const struct LevelUpMove sMiniorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(15, MOVE_SWIFT),
    LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(22, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(24, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(31, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(36, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(38, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(45, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(50, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_MINIOR

#if P_FAMILY_KOMALA
static const struct LevelUpMove sKomalaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 6, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 6, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 6, MOVE_SWALLOW),
    LEVEL_UP_MOVE(11, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(16, MOVE_YAWN),
    LEVEL_UP_MOVE(21, MOVE_SLAM),
    LEVEL_UP_MOVE(26, MOVE_FLAIL),
    LEVEL_UP_MOVE(31, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(41, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(46, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_KOMALA

#if P_FAMILY_TURTONATOR
static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_PROTECT),
    LEVEL_UP_MOVE(12, MOVE_ENDURE),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_INCINERATE),
    LEVEL_UP_MOVE(24, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(40, MOVE_SHELL_TRAP),
    LEVEL_UP_MOVE(44, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(48, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(52, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_TURTONATOR

#if P_FAMILY_TOGEDEMARU
static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(10, MOVE_CHARGE),
    LEVEL_UP_MOVE(15, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(20, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(25, MOVE_SPARK),
    LEVEL_UP_MOVE(30, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(35, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(40, MOVE_ZING_ZAP),
    LEVEL_UP_MOVE(45, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(50, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(55, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(60, MOVE_SPIKY_SHIELD),
    LEVEL_UP_END
};
#endif //P_FAMILY_TOGEDEMARU

#if P_FAMILY_MIMIKYU
static const struct LevelUpMove sMimikyuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 6, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE(18, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(24, MOVE_MIMIC),
    LEVEL_UP_MOVE(30, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(36, MOVE_SLASH),
    LEVEL_UP_MOVE(42, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE(48, MOVE_CHARM),
    LEVEL_UP_MOVE(54, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(60, MOVE_PAIN_SPLIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MIMIKYU

#if P_FAMILY_BRUXISH
static const struct LevelUpMove sBruxishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(17, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_DISABLE),
    LEVEL_UP_MOVE(25, MOVE_PSYWAVE),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(33, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(36, MOVE_SCREECH),
    LEVEL_UP_MOVE(41, MOVE_PSYCHIC_FANGS),
    LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRUXISH

#if P_FAMILY_DRAMPA
static const struct LevelUpMove sDrampaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 5, MOVE_TWISTER),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_GLARE),
    LEVEL_UP_MOVE(20, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(30, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(45, MOVE_FLY),
    LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(55, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRAMPA

#if P_FAMILY_DHELMISE
static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 4, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_WRAP),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(16, MOVE_GROWTH),
    LEVEL_UP_MOVE(20, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(24, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(28, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(32, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(36, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_SLAM),
    LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(48, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(52, MOVE_ANCHOR_SHOT),
    LEVEL_UP_MOVE(56, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(60, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(64, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_DHELMISE

#if P_FAMILY_JANGMO_O
static const struct LevelUpMove sJangmoOLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_PROTECT),
    LEVEL_UP_MOVE( 8, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_WORK_UP),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(36, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(44, MOVE_OUTRAGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHakamoOLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_WORK_UP),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(38, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(50, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(56, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};

static const struct LevelUpMove sKommoOLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES),
    LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES),
    LEVEL_UP_MOVE( 1, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_WORK_UP),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(38, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(52, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(68, MOVE_CLANGOROUS_SOUL),
    LEVEL_UP_MOVE(76, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_JANGMO_O

#if P_FAMILY_TAPU_KOKO
static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(10, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE(15, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(30, MOVE_CHARGE),
    LEVEL_UP_MOVE(35, MOVE_AGILITY),
    LEVEL_UP_MOVE(40, MOVE_SCREECH),
    LEVEL_UP_MOVE(45, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(60, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(70, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(75, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_KOKO

#if P_FAMILY_TAPU_LELE
static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(10, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_FLATTER),
    LEVEL_UP_MOVE(30, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(35, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(40, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(45, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(60, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(65, MOVE_TICKLE),
    LEVEL_UP_MOVE(70, MOVE_SKILL_SWAP),
    LEVEL_UP_MOVE(75, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_LELE

#if P_FAMILY_TAPU_BULU
static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(10, MOVE_DISABLE),
    LEVEL_UP_MOVE(15, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(30, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE(35, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(40, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE(45, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(60, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(65, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(70, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE(75, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_BULU

#if P_FAMILY_TAPU_FINI
static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(10, MOVE_MIST),
    LEVEL_UP_MOVE(10, MOVE_HAZE),
    LEVEL_UP_MOVE(15, MOVE_AQUA_RING),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(25, MOVE_BRINE),
    LEVEL_UP_MOVE(30, MOVE_DEFOG),
    LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(40, MOVE_SURF),
    LEVEL_UP_MOVE(45, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(50, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(55, MOVE_NATURES_MADNESS),
    LEVEL_UP_MOVE(60, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(70, MOVE_SOAK),
    LEVEL_UP_MOVE(75, MOVE_MISTY_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAPU_FINI

#if P_FAMILY_COSMOG
static const struct LevelUpMove sCosmogLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sCosmoemLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sSolgaleoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SUNSTEEL_STRIKE),
    LEVEL_UP_MOVE( 1, MOVE_SUNSTEEL_STRIKE),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 7, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(14, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(21, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(42, MOVE_CRUNCH),
    LEVEL_UP_MOVE(49, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(63, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(70, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(77, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};

static const struct LevelUpMove sLunalaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MOONGEIST_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_MOONGEIST_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(28, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(35, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE(42, MOVE_NIGHT_DAZE),
    LEVEL_UP_MOVE(49, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(56, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(63, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(70, MOVE_DREAM_EATER),
    LEVEL_UP_MOVE(77, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(84, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_COSMOG

#if P_FAMILY_NIHILEGO
static const struct LevelUpMove sNihilegoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 5, MOVE_ACID),
    LEVEL_UP_MOVE(10, MOVE_TICKLE),
    LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(20, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(25, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(25, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(30, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(35, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(40, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE(45, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(50, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(55, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(60, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(65, MOVE_WONDER_ROOM),
    LEVEL_UP_MOVE(70, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_NIHILEGO

#if P_FAMILY_BUZZWOLE
static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(15, MOVE_VITAL_THROW),
    LEVEL_UP_MOVE(20, MOVE_BULK_UP),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(30, MOVE_REVERSAL),
    LEVEL_UP_MOVE(35, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(40, MOVE_LUNGE),
    LEVEL_UP_MOVE(45, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(55, MOVE_COUNTER),
    LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(65, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(70, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_BUZZWOLE

#if P_FAMILY_PHEROMOSA
static const struct LevelUpMove sPheromosaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(15, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(20, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(25, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(30, MOVE_TRIPLE_KICK),
    LEVEL_UP_MOVE(35, MOVE_STOMP),
    LEVEL_UP_MOVE(40, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_LUNGE),
    LEVEL_UP_MOVE(50, MOVE_BOUNCE),
    LEVEL_UP_MOVE(55, MOVE_SPEED_SWAP),
    LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(65, MOVE_QUIVER_DANCE),
    LEVEL_UP_MOVE(70, MOVE_HIGH_JUMP_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_PHEROMOSA

#if P_FAMILY_XURKITREE
static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_CHARGE),
    LEVEL_UP_MOVE(10, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(15, MOVE_INGRAIN),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(30, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(35, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE(40, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(45, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(50, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(55, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(65, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(70, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_XURKITREE

#if P_FAMILY_CELESTEELA
static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_HARDEN),
    LEVEL_UP_MOVE(10, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(15, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(25, MOVE_INGRAIN),
    LEVEL_UP_MOVE(30, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(35, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(45, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(50, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(55, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(70, MOVE_SKULL_BASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CELESTEELA

#if P_FAMILY_KARTANA
static const struct LevelUpMove sKartanaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE),
    LEVEL_UP_MOVE( 5, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(10, MOVE_FALSE_SWIPE),
    LEVEL_UP_MOVE(15, MOVE_CUT),
    LEVEL_UP_MOVE(20, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(30, MOVE_DETECT),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(45, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(50, MOVE_DEFOG),
    LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(65, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(70, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_KARTANA

#if P_FAMILY_GUZZLORD
static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 5, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 5, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(15, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(25, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(45, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(60, MOVE_BELCH),
    LEVEL_UP_MOVE(65, MOVE_THRASH),
    LEVEL_UP_MOVE(70, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_GUZZLORD

#if P_FAMILY_NECROZMA
static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT),
    LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE( 1, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_GRAVITY),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 8, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(16, MOVE_SLASH),
    LEVEL_UP_MOVE(24, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(32, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(40, MOVE_STORED_POWER),
    LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(56, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(64, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(72, MOVE_PHOTON_GEYSER),
    LEVEL_UP_MOVE(80, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(88, MOVE_PRISMATIC_LASER),
    LEVEL_UP_END
};
#endif //P_FAMILY_NECROZMA

#if P_FAMILY_MAGEARNA
static const struct LevelUpMove sMagearnaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE(12, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(18, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(24, MOVE_GEAR_UP),
    LEVEL_UP_MOVE(30, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(42, MOVE_MIND_READER),
    LEVEL_UP_MOVE(48, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(54, MOVE_CRAFTY_SHIELD),
    LEVEL_UP_MOVE(60, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(66, MOVE_AURA_SPHERE),
    LEVEL_UP_MOVE(72, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(78, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(90, MOVE_FLEUR_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_MAGEARNA

#if P_FAMILY_MARSHADOW
static const struct LevelUpMove sMarshadowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 9, MOVE_ROLE_PLAY),
    LEVEL_UP_MOVE(18, MOVE_SHADOW_PUNCH),
    LEVEL_UP_MOVE(27, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(36, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(54, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(63, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE(72, MOVE_SPECTRAL_THIEF),
    LEVEL_UP_MOVE(81, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(90, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(99, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MARSHADOW

#if P_FAMILY_POIPOLE
static const struct LevelUpMove sPoipoleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(21, MOVE_CHARM),
    LEVEL_UP_MOVE(28, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(35, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(63, MOVE_TOXIC),
    LEVEL_UP_END
};

static const struct LevelUpMove sNaganadelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_FELL_STINGER),
    LEVEL_UP_MOVE(21, MOVE_CHARM),
    LEVEL_UP_MOVE(28, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(35, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(49, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(56, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(63, MOVE_TOXIC),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_POIPOLE

#if P_FAMILY_STAKATAKA
static const struct LevelUpMove sStakatakaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(10, MOVE_PROTECT),
    LEVEL_UP_MOVE(15, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_BLOCK),
    LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(30, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(35, MOVE_AUTOTOMIZE),
    LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(45, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(50, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(55, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(60, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(65, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_STAKATAKA

#if P_FAMILY_BLACEPHALON
static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE( 5, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE(10, MOVE_EMBER),
    LEVEL_UP_MOVE(15, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(20, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(25, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(30, MOVE_INCINERATE),
    LEVEL_UP_MOVE(35, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(40, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(50, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(55, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(60, MOVE_TRICK),
    LEVEL_UP_MOVE(65, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(70, MOVE_MIND_BLOWN),
    LEVEL_UP_END
};
#endif //P_FAMILY_BLACEPHALON

#if P_FAMILY_ZERAORA
static const struct LevelUpMove sZeraoraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_SNARL),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(16, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(24, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(40, MOVE_CHARGE),
    LEVEL_UP_MOVE(48, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(56, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(64, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(72, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(80, MOVE_AGILITY),
    LEVEL_UP_MOVE(88, MOVE_PLASMA_FISTS),
    LEVEL_UP_MOVE(96, MOVE_CLOSE_COMBAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZERAORA

#if P_FAMILY_MELTAN
static const struct LevelUpMove sMeltanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sMelmetalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(40, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(48, MOVE_MEGA_PUNCH),
    LEVEL_UP_MOVE(56, MOVE_PROTECT),
    LEVEL_UP_MOVE(64, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(72, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(80, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(88, MOVE_DOUBLE_IRON_BASH),
    LEVEL_UP_MOVE(96, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MELTAN

#if P_FAMILY_GROOKEY
static const struct LevelUpMove sGrookeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 8, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SCREECH),
    LEVEL_UP_MOVE(20, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(24, MOVE_SLAM),
    LEVEL_UP_MOVE(28, MOVE_UPROAR),
    LEVEL_UP_MOVE(32, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(36, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sThwackeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(36, MOVE_UPROAR),
    LEVEL_UP_MOVE(42, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(48, MOVE_ENDEAVOR),
    LEVEL_UP_END
};

static const struct LevelUpMove sRillaboomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRUM_BEATING),
    LEVEL_UP_MOVE( 1, MOVE_DRUM_BEATING),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_BRANCH_POKE),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(19, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_UPROAR),
    LEVEL_UP_MOVE(46, MOVE_WOOD_HAMMER),
    LEVEL_UP_MOVE(54, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(62, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_GROOKEY

#if P_FAMILY_SCORBUNNY
static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_EMBER),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(17, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(20, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_COUNTER),
    LEVEL_UP_MOVE(32, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRabootLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(36, MOVE_COUNTER),
    LEVEL_UP_MOVE(42, MOVE_BOUNCE),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sCinderaceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_PYRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(19, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(38, MOVE_COUNTER),
    LEVEL_UP_MOVE(46, MOVE_BOUNCE),
    LEVEL_UP_MOVE(54, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCORBUNNY

#if P_FAMILY_SOBBLE
static const struct LevelUpMove sSobbleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 8, MOVE_BIND),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(17, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(20, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(24, MOVE_U_TURN),
    LEVEL_UP_MOVE(28, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(32, MOVE_SOAK),
    LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrizzileLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(36, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(42, MOVE_SOAK),
    LEVEL_UP_MOVE(48, MOVE_RAIN_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sInteleonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SNIPE_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_SNIPE_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_ACROBATICS),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE(12, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_U_TURN),
    LEVEL_UP_MOVE(38, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(46, MOVE_SOAK),
    LEVEL_UP_MOVE(54, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SOBBLE

#if P_FAMILY_SKWOVET
static const struct LevelUpMove sSkwovetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_STUFF_CHEEKS),
    LEVEL_UP_MOVE(15, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(15, MOVE_SWALLOW),
    LEVEL_UP_MOVE(15, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(25, MOVE_REST),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(35, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(40, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(45, MOVE_BELCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sGreedentLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_COVET),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_STUFF_CHEEKS),
    LEVEL_UP_MOVE(15, MOVE_STOCKPILE),
    LEVEL_UP_MOVE(15, MOVE_SWALLOW),
    LEVEL_UP_MOVE(15, MOVE_SPIT_UP),
    LEVEL_UP_MOVE(20, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(27, MOVE_REST),
    LEVEL_UP_MOVE(34, MOVE_COUNTER),
    LEVEL_UP_MOVE(41, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(48, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(55, MOVE_BELCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SKWOVET

#if P_FAMILY_ROOKIDEE
static const struct LevelUpMove sRookideeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(36, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCorvisquireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_TAUNT),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(40, MOVE_SWAGGER),
    LEVEL_UP_MOVE(46, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCorviknightLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_STEEL_WING),
    LEVEL_UP_MOVE( 1, MOVE_STEEL_WING),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_PLUCK),
    LEVEL_UP_MOVE(22, MOVE_TAUNT),
    LEVEL_UP_MOVE(28, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(34, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(42, MOVE_SWAGGER),
    LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROOKIDEE

#if P_FAMILY_BLIPBUG
static const struct LevelUpMove sBlipbugLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_END
};

static const struct LevelUpMove sDottlerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 0, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 0, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_END
};

static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REFLECT),
    LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 4, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 8, MOVE_MAGIC_COAT),
    LEVEL_UP_MOVE(12, MOVE_AGILITY),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(24, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(28, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(32, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(36, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(44, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_BLIPBUG

#if P_FAMILY_NICKIT
static const struct LevelUpMove sNickitLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 4, MOVE_BEAT_UP),
    LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_SNARL),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(32, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(36, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sThievulLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_THIEF),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_BEAT_UP),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(12, MOVE_SNARL),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(22, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(34, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(46, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_NICKIT

#if P_FAMILY_GOSSIFLEUR
static const struct LevelUpMove sGossifleurLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 8, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(21, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(24, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(28, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(32, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(36, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sEldegossLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_COTTON_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(12, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(16, MOVE_ROUND),
    LEVEL_UP_MOVE(23, MOVE_LEAF_TORNADO),
    LEVEL_UP_MOVE(28, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(34, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(46, MOVE_LEAF_STORM),
    LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOSSIFLEUR

#if P_FAMILY_WOOLOO
static const struct LevelUpMove sWoolooLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 8, MOVE_COPYCAT),
    LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(32, MOVE_REVERSAL),
    LEVEL_UP_MOVE(36, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDubwoolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE(12, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(32, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(38, MOVE_REVERSAL),
    LEVEL_UP_MOVE(44, MOVE_COTTON_GUARD),
    LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(56, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_WOOLOO

#if P_FAMILY_CHEWTLE
static const struct LevelUpMove sChewtleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(14, MOVE_PROTECT),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_COUNTER),
    LEVEL_UP_MOVE(35, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(42, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(49, MOVE_BODY_SLAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrednawLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_RAZOR_SHELL),
    LEVEL_UP_MOVE( 1, MOVE_CRUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_COUNTER),
    LEVEL_UP_MOVE(39, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(48, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(57, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHEWTLE

#if P_FAMILY_YAMPER
static const struct LevelUpMove sYamperLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_NUZZLE),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(26, MOVE_CHARM),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(35, MOVE_CHARGE),
    LEVEL_UP_MOVE(40, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sBoltundLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIFY),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_ROAR),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(28, MOVE_CHARM),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(41, MOVE_CHARGE),
    LEVEL_UP_MOVE(48, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(55, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_END
};
#endif //P_FAMILY_YAMPER

#if P_FAMILY_ROLYCOLY
static const struct LevelUpMove sRolycolyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(25, MOVE_INCINERATE),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(35, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(40, MOVE_ROCK_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sCarkolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(27, MOVE_INCINERATE),
    LEVEL_UP_MOVE(35, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(41, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(48, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(55, MOVE_BURN_UP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCoalossalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TAR_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_TAR_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(27, MOVE_INCINERATE),
    LEVEL_UP_MOVE(37, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(45, MOVE_HEAT_CRASH),
    LEVEL_UP_MOVE(54, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(63, MOVE_BURN_UP),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROLYCOLY

#if P_FAMILY_APPLIN
static const struct LevelUpMove sApplinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sFlappleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 4, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 8, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(32, MOVE_GRAV_APPLE),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_FLY),
    LEVEL_UP_MOVE(44, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};

static const struct LevelUpMove sAppletunLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 4, MOVE_CURSE),
    LEVEL_UP_MOVE( 8, MOVE_STOMP),
    LEVEL_UP_MOVE(12, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_RECOVER),
    LEVEL_UP_MOVE(28, MOVE_APPLE_ACID),
    LEVEL_UP_MOVE(32, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sDipplinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 8, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(36, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHydrappleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_RECYCLE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 8, MOVE_GROWTH),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(16, MOVE_PROTECT),
    LEVEL_UP_MOVE(20, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(36, MOVE_RECOVER),
    LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(54, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_APPLIN

#if P_FAMILY_SILICOBRA
static const struct LevelUpMove sSilicobraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 5, MOVE_MINIMIZE),
    LEVEL_UP_MOVE(10, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_GLARE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(40, MOVE_SLAM),
    LEVEL_UP_MOVE(45, MOVE_COIL),
    LEVEL_UP_MOVE(50, MOVE_SAND_TOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sSandacondaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SKULL_BASH),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
    LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_GLARE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(42, MOVE_SLAM),
    LEVEL_UP_MOVE(49, MOVE_COIL),
    LEVEL_UP_MOVE(51, MOVE_SAND_TOMB),
    LEVEL_UP_END
};
#endif //P_FAMILY_SILICOBRA

#if P_FAMILY_CRAMORANT
static const struct LevelUpMove sCramorantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_STOCKPILE),
    LEVEL_UP_MOVE( 1, MOVE_SWALLOW),
    LEVEL_UP_MOVE( 1, MOVE_SPIT_UP),
    LEVEL_UP_MOVE( 7, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(14, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(21, MOVE_PLUCK),
    LEVEL_UP_MOVE(28, MOVE_DIVE),
    LEVEL_UP_MOVE(35, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(42, MOVE_AMNESIA),
    LEVEL_UP_MOVE(49, MOVE_THRASH),
    LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_CRAMORANT

#if P_FAMILY_ARROKUDA
static const struct LevelUpMove sArrokudaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 6, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_DIVE),
    LEVEL_UP_MOVE(30, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(36, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_AGILITY),
    LEVEL_UP_MOVE(24, MOVE_DIVE),
    LEVEL_UP_MOVE(32, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARROKUDA

#if P_FAMILY_TOXEL
static const struct LevelUpMove sToxelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_TAUNT),
    LEVEL_UP_MOVE(20, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(44, MOVE_OVERDRIVE),
    LEVEL_UP_MOVE(48, MOVE_BOOMBURST),
    LEVEL_UP_MOVE(52, MOVE_SHIFT_GEAR),
    LEVEL_UP_END
};

static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_SPARK),
    LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE),
    LEVEL_UP_MOVE( 1, MOVE_BELCH),
    LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_NUZZLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_FLAIL),
    LEVEL_UP_MOVE( 1, MOVE_ACID),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 4, MOVE_CHARGE),
    LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(16, MOVE_TAUNT),
    LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH),
    LEVEL_UP_MOVE(24, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_SWAGGER),
    LEVEL_UP_MOVE(32, MOVE_TOXIC),
    LEVEL_UP_MOVE(36, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(44, MOVE_OVERDRIVE),
    LEVEL_UP_MOVE(48, MOVE_BOOMBURST),
    LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_END
};
#endif //P_FAMILY_TOXEL

#if P_FAMILY_SIZZLIPEDE
static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 5, MOVE_WRAP),
    LEVEL_UP_MOVE(10, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(25, MOVE_COIL),
    LEVEL_UP_MOVE(30, MOVE_SLAM),
    LEVEL_UP_MOVE(35, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_FIRE_LASH),
    LEVEL_UP_MOVE(50, MOVE_LUNGE),
    LEVEL_UP_MOVE(55, MOVE_BURN_UP),
    LEVEL_UP_END
};

static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_INFERNO),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(25, MOVE_COIL),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(39, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(46, MOVE_CRUNCH),
    LEVEL_UP_MOVE(53, MOVE_FIRE_LASH),
    LEVEL_UP_MOVE(60, MOVE_LUNGE),
    LEVEL_UP_MOVE(67, MOVE_BURN_UP),
    LEVEL_UP_END
};
#endif //P_FAMILY_SIZZLIPEDE

#if P_FAMILY_CLOBBOPUS
static const struct LevelUpMove sClobbopusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_FEINT),
    LEVEL_UP_MOVE(10, MOVE_BIND),
    LEVEL_UP_MOVE(15, MOVE_DETECT),
    LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(25, MOVE_BULK_UP),
    LEVEL_UP_MOVE(30, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(35, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_REVERSAL),
    LEVEL_UP_MOVE(45, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrapploctLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_OCTOLOCK),
    LEVEL_UP_MOVE( 1, MOVE_OCTOLOCK),
    LEVEL_UP_MOVE( 1, MOVE_OCTAZOOKA),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FEINT),
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE(15, MOVE_DETECT),
    LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(25, MOVE_BULK_UP),
    LEVEL_UP_MOVE(30, MOVE_SUBMISSION),
    LEVEL_UP_MOVE(35, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_REVERSAL),
    LEVEL_UP_MOVE(45, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY),
    LEVEL_UP_END
};
#endif //P_FAMILY_CLOBBOPUS

#if P_FAMILY_SINISTEA
static const struct LevelUpMove sSinisteaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 6, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sPolteageistLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TEATIME),
    LEVEL_UP_MOVE( 1, MOVE_TEATIME),
    LEVEL_UP_MOVE( 1, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(18, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(42, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_SHELL_SMASH),
    LEVEL_UP_MOVE(66, MOVE_CURSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SINISTEA

#if P_FAMILY_HATENNA
static const struct LevelUpMove sHatennaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 5, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(35, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(45, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHattremLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(37, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(44, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(51, MOVE_HEALING_WISH),
    LEVEL_UP_END
};

static const struct LevelUpMove sHattereneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE( 1, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 1, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(20, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(25, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(30, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(37, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(46, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(55, MOVE_HEALING_WISH),
    LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_HATENNA

#if P_FAMILY_IMPIDIMP
static const struct LevelUpMove sImpidimpLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_CONFIDE),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_FLATTER),
    LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_TORMENT),
    LEVEL_UP_MOVE(33, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(40, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(44, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sMorgremLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FALSE_SURRENDER),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_CONFIDE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_TORMENT),
    LEVEL_UP_MOVE(35, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(52, MOVE_FOUL_PLAY),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPIRIT_BREAK),
    LEVEL_UP_MOVE( 1, MOVE_SPIRIT_BREAK),
    LEVEL_UP_MOVE( 1, MOVE_FALSE_SURRENDER),
    LEVEL_UP_MOVE( 1, MOVE_BULK_UP),
    LEVEL_UP_MOVE( 1, MOVE_POWER_UP_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_CONFIDE),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE(12, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(16, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(20, MOVE_SWAGGER),
    LEVEL_UP_MOVE(24, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_TORMENT),
    LEVEL_UP_MOVE(35, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(40, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(48, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(56, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM),
    LEVEL_UP_END
};
#endif //P_FAMILY_IMPIDIMP

#if P_FAMILY_MILCERY
static const struct LevelUpMove sMilceryLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 5, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(10, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(25, MOVE_ATTRACT),
    LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};

static const struct LevelUpMove sAlcremieLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DECORATE),
    LEVEL_UP_MOVE( 1, MOVE_DECORATE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE(15, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(20, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(25, MOVE_ATTRACT),
    LEVEL_UP_MOVE(30, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(40, MOVE_RECOVER),
    LEVEL_UP_MOVE(45, MOVE_MISTY_TERRAIN),
    LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MILCERY

#if P_FAMILY_FALINKS
static const struct LevelUpMove sFalinksLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_PROTECT),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(15, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_BULK_UP),
    LEVEL_UP_MOVE(25, MOVE_ENDURE),
    LEVEL_UP_MOVE(30, MOVE_REVERSAL),
    LEVEL_UP_MOVE(35, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE(40, MOVE_NO_RETREAT),
    LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(55, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(60, MOVE_COUNTER),
    LEVEL_UP_END
};
#endif //P_FAMILY_FALINKS

#if P_FAMILY_PINCURCHIN
static const struct LevelUpMove sPincurchinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 5, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(10, MOVE_CHARGE),
    LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(35, MOVE_CURSE),
    LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(45, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(50, MOVE_ZING_ZAP),
    LEVEL_UP_MOVE(55, MOVE_ACUPRESSURE),
    LEVEL_UP_MOVE(60, MOVE_DISCHARGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_PINCURCHIN

#if P_FAMILY_SNOM
static const struct LevelUpMove sSnomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_END
};

static const struct LevelUpMove sFrosmothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
    LEVEL_UP_MOVE( 4, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_INFESTATION),
    LEVEL_UP_MOVE(12, MOVE_MIST),
    LEVEL_UP_MOVE(16, MOVE_DEFOG),
    LEVEL_UP_MOVE(21, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(24, MOVE_AURORA_BEAM),
    LEVEL_UP_MOVE(28, MOVE_HAIL),
    LEVEL_UP_MOVE(32, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(36, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(40, MOVE_BLIZZARD),
    LEVEL_UP_MOVE(44, MOVE_TAILWIND),
    LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SNOM

#if P_FAMILY_STONJOURNER
static const struct LevelUpMove sStonjournerLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(12, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(18, MOVE_GRAVITY),
    LEVEL_UP_MOVE(24, MOVE_STOMP),
    LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(42, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(48, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(60, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(66, MOVE_MEGA_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_STONJOURNER

#if P_FAMILY_EISCUE
static const struct LevelUpMove sEiscueLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 6, MOVE_MIST),
    LEVEL_UP_MOVE(12, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(18, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_AMNESIA),
    LEVEL_UP_MOVE(36, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(42, MOVE_HAIL),
    LEVEL_UP_MOVE(48, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(54, MOVE_SURF),
    LEVEL_UP_MOVE(60, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_EISCUE

#if P_FAMILY_INDEEDEE
static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 5, MOVE_ENCORE),
    LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(25, MOVE_AFTER_YOU),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(45, MOVE_POWER_SPLIT),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_MOVE(55, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STORED_POWER),
    LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE),
    LEVEL_UP_MOVE( 5, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(35, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(40, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN),
    LEVEL_UP_MOVE(55, MOVE_HEALING_WISH),
    LEVEL_UP_END
};
#endif //P_FAMILY_INDEEDEE

#if P_FAMILY_MORPEKO
static const struct LevelUpMove sMorpekoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_LEER),
    LEVEL_UP_MOVE(10, MOVE_POWER_TRIP),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_FLATTER),
    LEVEL_UP_MOVE(25, MOVE_BITE),
    LEVEL_UP_MOVE(30, MOVE_SPARK),
    LEVEL_UP_MOVE(35, MOVE_TORMENT),
    LEVEL_UP_MOVE(40, MOVE_AGILITY),
    LEVEL_UP_MOVE(45, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_AURA_WHEEL),
    LEVEL_UP_MOVE(60, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_MORPEKO

#if P_FAMILY_CUFANT
static const struct LevelUpMove sCufantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 5, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(10, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_STOMP),
    LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_STRENGTH),
    LEVEL_UP_MOVE(40, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(45, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(50, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(55, MOVE_SUPERPOWER),
    LEVEL_UP_END
};

static const struct LevelUpMove sCopperajahLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(15, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(20, MOVE_STOMP),
    LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(37, MOVE_STRENGTH),
    LEVEL_UP_MOVE(44, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(51, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(58, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(65, MOVE_SUPERPOWER),
    LEVEL_UP_END
};
#endif //P_FAMILY_CUFANT

#if P_FAMILY_DRACOZOLT
static const struct LevelUpMove sDracozoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_CHARGE),
    LEVEL_UP_MOVE(14, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_PLUCK),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(42, MOVE_STOMP),
    LEVEL_UP_MOVE(49, MOVE_SLAM),
    LEVEL_UP_MOVE(56, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRACOZOLT

#if P_FAMILY_ARCTOZOLT
static const struct LevelUpMove sArctozoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_CHARGE),
    LEVEL_UP_MOVE(14, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_PLUCK),
    LEVEL_UP_MOVE(35, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(49, MOVE_SLAM),
    LEVEL_UP_MOVE(56, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(63, MOVE_BOLT_BEAK),
    LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(77, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCTOZOLT

#if P_FAMILY_DRACOVISH
static const struct LevelUpMove sDracovishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_PROTECT),
    LEVEL_UP_MOVE(14, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(42, MOVE_STOMP),
    LEVEL_UP_MOVE(49, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DRACOVISH

#if P_FAMILY_ARCTOVISH
static const struct LevelUpMove sArctovishLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_PROTECT),
    LEVEL_UP_MOVE(14, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(28, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(49, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(63, MOVE_FISHIOUS_REND),
    LEVEL_UP_MOVE(70, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(77, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_ARCTOVISH

#if P_FAMILY_DURALUDON
static const struct LevelUpMove sDuraludonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(42, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(60, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};

#if P_GEN_9_CROSS_EVOS
static const struct LevelUpMove sArchaludonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(18, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(60, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_GEN_9_CROSS_EVOS
#endif //P_FAMILY_DURALUDON

#if P_FAMILY_DREEPY
static const struct LevelUpMove sDreepyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDrakloakLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(18, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_U_TURN),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(61, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(72, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDragapultLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DRAGON_DARTS),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_DARTS),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_INFESTATION),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 6, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(12, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(18, MOVE_HEX),
    LEVEL_UP_MOVE(24, MOVE_AGILITY),
    LEVEL_UP_MOVE(30, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(36, MOVE_U_TURN),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(48, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(54, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(78, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_DREEPY

#if P_FAMILY_ZACIAN
static const struct LevelUpMove sZacianLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_SLASH),
    LEVEL_UP_MOVE(22, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(33, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(55, MOVE_CRUNCH),
    LEVEL_UP_MOVE(66, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZACIAN

#if P_FAMILY_ZAMAZENTA
static const struct LevelUpMove sZamazentaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_METAL_BURST),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_HOWL),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_SLASH),
    LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(33, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(44, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(55, MOVE_CRUNCH),
    LEVEL_UP_MOVE(66, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(77, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZAMAZENTA

#if P_FAMILY_ETERNATUS
static const struct LevelUpMove sEternatusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 8, MOVE_TOXIC),
    LEVEL_UP_MOVE(16, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(24, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(32, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_DYNAMAX_CANNON),
    LEVEL_UP_MOVE(64, MOVE_COSMIC_POWER),
    LEVEL_UP_MOVE(72, MOVE_RECOVER),
    LEVEL_UP_MOVE(80, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(88, MOVE_ETERNABEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_ETERNATUS

#if P_FAMILY_KUBFU
static const struct LevelUpMove sKubfuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_ENDURE),
    LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(32, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW),
    LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW),
    LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(32, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES),
    LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ENDURE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(16, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(28, MOVE_DETECT),
    LEVEL_UP_MOVE(32, MOVE_BULK_UP),
    LEVEL_UP_MOVE(36, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(40, MOVE_DYNAMIC_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_COUNTER),
    LEVEL_UP_MOVE(48, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_KUBFU

#if P_FAMILY_ZARUDE
static const struct LevelUpMove sZarudeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BIND),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 6, MOVE_LEER),
    LEVEL_UP_MOVE(12, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE(18, MOVE_GROWTH),
    LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(30, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT),
    LEVEL_UP_MOVE(42, MOVE_BITE),
    LEVEL_UP_MOVE(48, MOVE_U_TURN),
    LEVEL_UP_MOVE(54, MOVE_SWAGGER),
    LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(66, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(78, MOVE_THRASH),
    LEVEL_UP_MOVE(84, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING),
    LEVEL_UP_END
};
#endif //P_FAMILY_ZARUDE

#if P_FAMILY_REGIELEKI
static const struct LevelUpMove sRegielekiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED),
    LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE),
    LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT),
    LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_LOCK_ON),
    LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(78, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIELEKI

#if P_FAMILY_REGIDRAGO
static const struct LevelUpMove sRegidragoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(30, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS),
    LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY),
    LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM),
    LEVEL_UP_MOVE(78, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_REGIDRAGO

#if P_FAMILY_GLASTRIER
static const struct LevelUpMove sGlastrierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(12, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_TORMENT),
    LEVEL_UP_MOVE(30, MOVE_MIST),
    LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_TAUNT),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_GLASTRIER

#if P_FAMILY_SPECTRIER
static const struct LevelUpMove sSpectrierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(12, MOVE_HEX),
    LEVEL_UP_MOVE(18, MOVE_STOMP),
    LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(30, MOVE_HAZE),
    LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_AGILITY),
    LEVEL_UP_MOVE(54, MOVE_THRASH),
    LEVEL_UP_MOVE(60, MOVE_DISABLE),
    LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPECTRIER

#if P_FAMILY_CALYREX
static const struct LevelUpMove sCalyrexLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};

#if P_FUSION_FORMS
static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_AVALANCHE),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_TORMENT),
    LEVEL_UP_MOVE( 1, MOVE_MIST),
    LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_TAUNT),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS

#if P_FUSION_FORMS
static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_HEX),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_HAZE),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_AGILITY),
    LEVEL_UP_MOVE( 1, MOVE_THRASH),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(24, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(32, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY),
    LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(64, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE),
    LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT),
    LEVEL_UP_END
};
#endif //P_FUSION_FORMS
#endif //P_FAMILY_CALYREX

#if P_FAMILY_ENAMORUS
static const struct LevelUpMove sEnamorusLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(11, MOVE_TWISTER),
    LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(41, MOVE_CRUNCH),
    LEVEL_UP_MOVE(47, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(52, MOVE_SPRINGTIDE_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_ENAMORUS

#if P_FAMILY_SPRIGATITO
static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(17, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(21, MOVE_U_TURN),
    LEVEL_UP_MOVE(25, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(28, MOVE_SLASH),
    LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH),
    LEVEL_UP_END
};

static const struct LevelUpMove sFloragatoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(24, MOVE_U_TURN),
    LEVEL_UP_MOVE(28, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(46, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_TRICK),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(24, MOVE_U_TURN),
    LEVEL_UP_MOVE(29, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(33, MOVE_SLASH),
    LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(64, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_SPRIGATITO

#if P_FAMILY_FUECOCO
static const struct LevelUpMove sFuecocoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_INCINERATE),
    LEVEL_UP_MOVE(17, MOVE_YAWN),
    LEVEL_UP_MOVE(21, MOVE_SNARL),
    LEVEL_UP_MOVE(25, MOVE_ROAR),
    LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sCrocalorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_YAWN),
    LEVEL_UP_MOVE(17, MOVE_INCINERATE),
    LEVEL_UP_MOVE(24, MOVE_SNARL),
    LEVEL_UP_MOVE(28, MOVE_ROAR),
    LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST),
    LEVEL_UP_END
};

static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_YAWN),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 7, MOVE_LICK),
    LEVEL_UP_MOVE(10, MOVE_ROUND),
    LEVEL_UP_MOVE(12, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(15, MOVE_BITE),
    LEVEL_UP_MOVE(17, MOVE_INCINERATE),
    LEVEL_UP_MOVE(24, MOVE_SNARL),
    LEVEL_UP_MOVE(28, MOVE_ROAR),
    LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(47, MOVE_HEX),
    LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(64, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FUECOCO

#if P_FAMILY_QUAXLY
static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(24, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(31, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(35, MOVE_LIQUIDATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 7, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(38, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(43, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE),
    LEVEL_UP_END
};

static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE( 7, MOVE_WORK_UP),
    LEVEL_UP_MOVE(10, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(27, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(38, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(43, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(47, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_QUAXLY

#if P_FAMILY_LECHONK
static const struct LevelUpMove sLechonkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_COVET),
    LEVEL_UP_MOVE(17, MOVE_DIG),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_YAWN),
    LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_WORK_UP),
    LEVEL_UP_MOVE(32, MOVE_UPROAR),
    LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(15, MOVE_COVET),
    LEVEL_UP_MOVE(17, MOVE_DIG),
    LEVEL_UP_MOVE(23, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(27, MOVE_YAWN),
    LEVEL_UP_MOVE(34, MOVE_WORK_UP),
    LEVEL_UP_MOVE(38, MOVE_UPROAR),
    LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(48, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(54, MOVE_BELCH),
    LEVEL_UP_END
};

static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(12, MOVE_COVET),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(17, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(23, MOVE_YAWN),
    LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_WORK_UP),
    LEVEL_UP_MOVE(34, MOVE_UPROAR),
    LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(45, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(51, MOVE_BELCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_LECHONK

#if P_FAMILY_TAROUNTULA
static const struct LevelUpMove sTarountulaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 8, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(14, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(18, MOVE_BLOCK),
    LEVEL_UP_MOVE(22, MOVE_COUNTER),
    LEVEL_UP_MOVE(25, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(29, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK),
    LEVEL_UP_END
};

static const struct LevelUpMove sSpidopsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
    LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 8, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_FEINT),
    LEVEL_UP_MOVE(14, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(19, MOVE_BLOCK),
    LEVEL_UP_MOVE(24, MOVE_COUNTER),
    LEVEL_UP_MOVE(28, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(33, MOVE_STICKY_WEB),
    LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID),
    LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW),
    LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK),
    LEVEL_UP_END
};
#endif //P_FAMILY_TAROUNTULA

#if P_FAMILY_NYMBLE
static const struct LevelUpMove sNymbleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(14, MOVE_SCREECH),
    LEVEL_UP_MOVE(18, MOVE_ENDURE),
    LEVEL_UP_MOVE(22, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(26, MOVE_FEINT),
    LEVEL_UP_MOVE(30, MOVE_AGILITY),
    LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_END
};

static const struct LevelUpMove sLokixLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LUNGE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_DETECT),
    LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE( 6, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 9, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE(14, MOVE_SCREECH),
    LEVEL_UP_MOVE(18, MOVE_ENDURE),
    LEVEL_UP_MOVE(22, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(28, MOVE_FEINT),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE(48, MOVE_BOUNCE),
    LEVEL_UP_MOVE(53, MOVE_AXE_KICK),
    LEVEL_UP_END
};
#endif //P_FAMILY_NYMBLE

#if P_FAMILY_PAWMI
static const struct LevelUpMove sPawmiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_NUZZLE),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(35, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(40, MOVE_AGILITY),
    LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPawmoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_NUZZLE),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(32, MOVE_SLAM),
    LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(42, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(46, MOVE_AGILITY),
    LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sPawmotLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 8, MOVE_CHARGE),
    LEVEL_UP_MOVE(12, MOVE_NUZZLE),
    LEVEL_UP_MOVE(15, MOVE_DIG),
    LEVEL_UP_MOVE(19, MOVE_BITE),
    LEVEL_UP_MOVE(23, MOVE_SPARK),
    LEVEL_UP_MOVE(25, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE(33, MOVE_SLAM),
    LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT),
    LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(49, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(54, MOVE_AGILITY),
    LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK),
    LEVEL_UP_END
};
#endif //P_FAMILY_PAWMI

#if P_FAMILY_TANDEMAUS
static const struct LevelUpMove sTandemausLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(11, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(18, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(22, MOVE_ENCORE),
    LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(33, MOVE_CHARM),
    LEVEL_UP_MOVE(37, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(41, MOVE_COPYCAT),
    LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB),
    LEVEL_UP_END
};

static const struct LevelUpMove sMausholdLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 1, MOVE_TIDY_UP),
    LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(11, MOVE_SUPER_FANG),
    LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(18, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(22, MOVE_ENCORE),
    LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(37, MOVE_CHARM),
    LEVEL_UP_MOVE(41, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(46, MOVE_COPYCAT),
    LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB),
    LEVEL_UP_END
};
#endif //P_FAMILY_TANDEMAUS

#if P_FAMILY_FIDOUGH
static const struct LevelUpMove sFidoughLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_COVET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(22, MOVE_WORK_UP),
    LEVEL_UP_MOVE(26, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(30, MOVE_ROAR),
    LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(36, MOVE_CHARM),
    LEVEL_UP_MOVE(40, MOVE_CRUNCH),
    LEVEL_UP_MOVE(45, MOVE_LAST_RESORT),
    LEVEL_UP_END
};

static const struct LevelUpMove sDachsbunLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 8, MOVE_COVET),
    LEVEL_UP_MOVE(11, MOVE_BITE),
    LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(22, MOVE_WORK_UP),
    LEVEL_UP_MOVE(29, MOVE_BATON_PASS),
    LEVEL_UP_MOVE(33, MOVE_ROAR),
    LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(42, MOVE_CHARM),
    LEVEL_UP_MOVE(47, MOVE_CRUNCH),
    LEVEL_UP_MOVE(53, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FIDOUGH

#if P_FAMILY_SMOLIV
static const struct LevelUpMove sSmolivLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(27, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(34, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sDollivLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(29, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(37, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE),
    LEVEL_UP_END
};

static const struct LevelUpMove sArbolivaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
    LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 7, MOVE_GROWTH),
    LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(13, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_FLAIL),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(29, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL),
    LEVEL_UP_MOVE(39, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE),
    LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD),
    LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE),
    LEVEL_UP_END
};
#endif //P_FAMILY_SMOLIV

#if P_FAMILY_SQUAWKABILLY
static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_MIMIC),
    LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(10, MOVE_TORMENT),
    LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE),
    LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK),
    LEVEL_UP_MOVE(20, MOVE_TAUNT),
    LEVEL_UP_MOVE(24, MOVE_UPROAR),
    LEVEL_UP_MOVE(27, MOVE_COPYCAT),
    LEVEL_UP_MOVE(30, MOVE_FLY),
    LEVEL_UP_MOVE(34, MOVE_FACADE),
    LEVEL_UP_MOVE(38, MOVE_SWAGGER),
    LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD),
    LEVEL_UP_MOVE(47, MOVE_ROOST),
    LEVEL_UP_MOVE(52, MOVE_REVERSAL),
    LEVEL_UP_END
};
#endif //P_FAMILY_SQUAWKABILLY

#if P_FAMILY_NACLI
static const struct LevelUpMove sNacliLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(25, MOVE_RECOVER),
    LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(45, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sNaclstackLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SALT_CURE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(51, MOVE_STONE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGarganaclLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM),
    LEVEL_UP_MOVE( 1, MOVE_BLOCK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(16, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(24, MOVE_SALT_CURE),
    LEVEL_UP_MOVE(30, MOVE_RECOVER),
    LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(54, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_EXPLOSION),
    LEVEL_UP_END
};
#endif //P_FAMILY_NACLI

#if P_FAMILY_CHARCADET
static const struct LevelUpMove sCharcadetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_INCINERATE),
    LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME),
    LEVEL_UP_END
};

static const struct LevelUpMove sArmarougeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_INCINERATE),
    LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(37, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE),
    LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW),
    LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE( 1, MOVE_SOLAR_BLADE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_INCINERATE),
    LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE),
    LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHARCADET

#if P_FAMILY_TADBULB
static const struct LevelUpMove sTadbulbLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};

static const struct LevelUpMove sBelliboltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF),
    LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE(11, MOVE_WATER_GUN),
    LEVEL_UP_MOVE(17, MOVE_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_SPARK),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(32, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL),
    LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON),
    LEVEL_UP_END
};
#endif //P_FAMILY_TADBULB

#if P_FAMILY_WATTREL
static const struct LevelUpMove sWattrelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_PLUCK),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(19, MOVE_UPROAR),
    LEVEL_UP_MOVE(23, MOVE_ROOST),
    LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(32, MOVE_AGILITY),
    LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(43, MOVE_DISCHARGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(11, MOVE_PLUCK),
    LEVEL_UP_MOVE(15, MOVE_SPARK),
    LEVEL_UP_MOVE(19, MOVE_UPROAR),
    LEVEL_UP_MOVE(24, MOVE_ROOST),
    LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(36, MOVE_AGILITY),
    LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(48, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(55, MOVE_HURRICANE),
    LEVEL_UP_END
};
#endif //P_FAMILY_WATTREL

#if P_FAMILY_MASCHIFF
static const struct LevelUpMove sMaschiffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 4, MOVE_LICK),
    LEVEL_UP_MOVE( 7, MOVE_SNARL),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(14, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(31, MOVE_CRUNCH),
    LEVEL_UP_MOVE(35, MOVE_SWAGGER),
    LEVEL_UP_MOVE(39, MOVE_REVERSAL),
    LEVEL_UP_MOVE(43, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 4, MOVE_LICK),
    LEVEL_UP_MOVE( 7, MOVE_SNARL),
    LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE(14, MOVE_BITE),
    LEVEL_UP_MOVE(18, MOVE_ROAR),
    LEVEL_UP_MOVE(22, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(26, MOVE_PAYBACK),
    LEVEL_UP_MOVE(34, MOVE_CRUNCH),
    LEVEL_UP_MOVE(39, MOVE_SWAGGER),
    LEVEL_UP_MOVE(43, MOVE_REVERSAL),
    LEVEL_UP_MOVE(48, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(60, MOVE_OUTRAGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_MASCHIFF

#if P_FAMILY_SHROODLE
static const struct LevelUpMove sShroodleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 8, MOVE_BITE),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(11, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(14, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(18, MOVE_FLATTER),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_U_TURN),
    LEVEL_UP_MOVE(29, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(33, MOVE_TAUNT),
    LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_DOODLE),
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES),
    LEVEL_UP_MOVE(11, MOVE_SWITCHEROO),
    LEVEL_UP_MOVE(14, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(18, MOVE_FLATTER),
    LEVEL_UP_MOVE(21, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_U_TURN),
    LEVEL_UP_MOVE(33, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(37, MOVE_TAUNT),
    LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_SHROODLE

#if P_FAMILY_BRAMBLIN
static const struct LevelUpMove sBramblinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(17, MOVE_INFESTATION),
    LEVEL_UP_MOVE(21, MOVE_HEX),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_DISABLE),
    LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_CURSE),
    LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(55, MOVE_POWER_WHIP),
    LEVEL_UP_END
};

static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_ABSORB),
    LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(13, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(17, MOVE_INFESTATION),
    LEVEL_UP_MOVE(21, MOVE_HEX),
    LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(29, MOVE_DISABLE),
    LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(45, MOVE_CURSE),
    LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(55, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRAMBLIN

#if P_FAMILY_TOEDSCOOL
static const struct LevelUpMove sToedscoolLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(12, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(32, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(36, MOVE_SPORE),
    LEVEL_UP_MOVE(40, MOVE_GROWTH),
    LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(48, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(52, MOVE_POWER_WHIP),
    LEVEL_UP_END
};

static const struct LevelUpMove sToedscruelLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 4, MOVE_ABSORB),
    LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(12, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE(15, MOVE_TACKLE),
    LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(20, MOVE_SCREECH),
    LEVEL_UP_MOVE(24, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(28, MOVE_HEX),
    LEVEL_UP_MOVE(34, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(40, MOVE_SPORE),
    LEVEL_UP_MOVE(44, MOVE_GROWTH),
    LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(54, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(58, MOVE_POWER_WHIP),
    LEVEL_UP_END
};
#endif //P_FAMILY_TOEDSCOOL

#if P_FAMILY_KLAWF
static const struct LevelUpMove sKlawfLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 6, MOVE_HARDEN),
    LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(17, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(21, MOVE_PROTECT),
    LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST),
    LEVEL_UP_MOVE(29, MOVE_X_SCISSOR),
    LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(37, MOVE_FLAIL),
    LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER),
    LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(56, MOVE_GUILLOTINE),
    LEVEL_UP_END
};
#endif //P_FAMILY_KLAWF

#if P_FAMILY_CAPSAKID
static const struct LevelUpMove sCapsakidLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(21, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};

static const struct LevelUpMove sScovillainLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT),
    LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_LEAFAGE),
    LEVEL_UP_MOVE( 4, MOVE_BITE),
    LEVEL_UP_MOVE(10, MOVE_GROWTH),
    LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF),
    LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE(21, MOVE_BULLET_SEED),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(33, MOVE_WORRY_SEED),
    LEVEL_UP_MOVE(38, MOVE_CRUNCH),
    LEVEL_UP_MOVE(44, MOVE_SEED_BOMB),
    LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM),
    LEVEL_UP_MOVE(48, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CAPSAKID

#if P_FAMILY_RELLOR
static const struct LevelUpMove sRellorLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_MUD_SHOT),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_DIG),
    LEVEL_UP_MOVE(35, MOVE_LUNGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sRabscaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING),
    LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
    LEVEL_UP_MOVE( 1, MOVE_PSYCH_UP),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(11, MOVE_ROLLOUT),
    LEVEL_UP_MOVE(15, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(20, MOVE_BUG_BITE),
    LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY),
    LEVEL_UP_MOVE(35, MOVE_LUNGE),
    LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP),
    LEVEL_UP_MOVE(40, MOVE_POWER_SWAP),
    LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP),
    LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(50, MOVE_PSYCHIC),
    LEVEL_UP_END
};
#endif //P_FAMILY_RELLOR

#if P_FAMILY_FLITTLE
static const struct LevelUpMove sFlittleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_PLUCK),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(34, MOVE_UPROAR),
    LEVEL_UP_END
};

static const struct LevelUpMove sEspathraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE),
    LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(19, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_PLUCK),
    LEVEL_UP_MOVE(29, MOVE_AGILITY),
    LEVEL_UP_MOVE(34, MOVE_UPROAR),
    LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(49, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(54, MOVE_LAST_RESORT),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLITTLE

#if P_FAMILY_TINKATINK
static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(11, MOVE_COVET),
    LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(27, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(39, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(43, MOVE_FLATTER),
    LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_END
};

static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(11, MOVE_COVET),
    LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(27, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(39, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(43, MOVE_FLATTER),
    LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_END
};

static const struct LevelUpMove sTinkatonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER),
    LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES),
    LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE(11, MOVE_COVET),
    LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS),
    LEVEL_UP_MOVE(21, MOVE_SWEET_KISS),
    LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(27, MOVE_SLAM),
    LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(39, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(43, MOVE_FLATTER),
    LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK),
    LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF),
    LEVEL_UP_END
};
#endif //P_FAMILY_TINKATINK

#if P_FAMILY_WIGLETT
static const struct LevelUpMove sWiglettLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE( 8, MOVE_WRAP),
    LEVEL_UP_MOVE(12, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(20, MOVE_SLAM),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(28, MOVE_DIG),
    LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(40, MOVE_LIQUIDATION),
    LEVEL_UP_END
};

static const struct LevelUpMove sWugtrioLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(16, MOVE_SLAM),
    LEVEL_UP_MOVE(20, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(24, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE),
    LEVEL_UP_MOVE(36, MOVE_DIG),
    LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(54, MOVE_LIQUIDATION),
    LEVEL_UP_END
};
#endif //P_FAMILY_WIGLETT

#if P_FAMILY_BOMBIRDIER
static const struct LevelUpMove sBombirdierLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_MEMENTO),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 7, MOVE_THIEF),
    LEVEL_UP_MOVE(11, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE(16, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(20, MOVE_PLUCK),
    LEVEL_UP_MOVE(24, MOVE_TORMENT),
    LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(36, MOVE_PAYBACK),
    LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_BOMBIRDIER

#if P_FAMILY_FINIZEN
static const struct LevelUpMove sFinizenLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(21, MOVE_DIVE),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_ENCORE),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(44, MOVE_MIST),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};

static const struct LevelUpMove sPalafinLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN),
    LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
    LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(13, MOVE_AQUA_JET),
    LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT),
    LEVEL_UP_MOVE(21, MOVE_DIVE),
    LEVEL_UP_MOVE(25, MOVE_CHARM),
    LEVEL_UP_MOVE(29, MOVE_ACROBATICS),
    LEVEL_UP_MOVE(34, MOVE_ENCORE),
    LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(44, MOVE_MIST),
    LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH),
    LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_FINIZEN

#if P_FAMILY_VAROOM
static const struct LevelUpMove sVaroomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(13, MOVE_SLUDGE),
    LEVEL_UP_MOVE(17, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(36, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(41, MOVE_UPROAR),
    LEVEL_UP_MOVE(46, MOVE_SPIN_OUT),
    LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};

static const struct LevelUpMove sRevavroomLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE),
    LEVEL_UP_MOVE( 1, MOVE_LICK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 4, MOVE_SMOG),
    LEVEL_UP_MOVE( 7, MOVE_TAUNT),
    LEVEL_UP_MOVE(10, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(13, MOVE_SLUDGE),
    LEVEL_UP_MOVE(17, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(21, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(25, MOVE_SCREECH),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(32, MOVE_SWAGGER),
    LEVEL_UP_MOVE(36, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(46, MOVE_UPROAR),
    LEVEL_UP_MOVE(52, MOVE_SPIN_OUT),
    LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VAROOM

#if P_FAMILY_CYCLIZAR
static const struct LevelUpMove sCyclizarLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(11, MOVE_TAUNT),
    LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(23, MOVE_BITE),
    LEVEL_UP_MOVE(27, MOVE_U_TURN),
    LEVEL_UP_MOVE(31, MOVE_SHED_TAIL),
    LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR),
    LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_CYCLIZAR

#if P_FAMILY_ORTHWORM
static const struct LevelUpMove sOrthwormLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_WRAP),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
    LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE(16, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(30, MOVE_DIG),
    LEVEL_UP_MOVE(34, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(43, MOVE_IRON_TAIL),
    LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(52, MOVE_SHED_TAIL),
    LEVEL_UP_END
};
#endif //P_FAMILY_ORTHWORM

#if P_FAMILY_GLIMMET
static const struct LevelUpMove sGlimmetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(22, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(26, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(37, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN),
    LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN),
    LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_HARDEN),
    LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(22, MOVE_VENOSHOCK),
    LEVEL_UP_MOVE(26, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT),
    LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(39, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR),
    LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE),
    LEVEL_UP_END
};
#endif //P_FAMILY_GLIMMET

#if P_FAMILY_GREAVARD
static const struct LevelUpMove sGreavardLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(37, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(46, MOVE_CHARM),
    LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};

static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_GROWL),
    LEVEL_UP_MOVE( 3, MOVE_LICK),
    LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
    LEVEL_UP_MOVE( 6, MOVE_BITE),
    LEVEL_UP_MOVE( 9, MOVE_ROAR),
    LEVEL_UP_MOVE(12, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(16, MOVE_DIG),
    LEVEL_UP_MOVE(24, MOVE_REST),
    LEVEL_UP_MOVE(28, MOVE_CRUNCH),
    LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(41, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(51, MOVE_CHARM),
    LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_GREAVARD

#if P_FAMILY_FLAMIGO
static const struct LevelUpMove sFlamigoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_COPYCAT),
    LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 9, MOVE_DETECT),
    LEVEL_UP_MOVE(12, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(18, MOVE_LOW_KICK),
    LEVEL_UP_MOVE(21, MOVE_FEINT),
    LEVEL_UP_MOVE(27, MOVE_PAYBACK),
    LEVEL_UP_MOVE(31, MOVE_ROOST),
    LEVEL_UP_MOVE(35, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(39, MOVE_MEGA_KICK),
    LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLAMIGO

#if P_FAMILY_CETODDLE
static const struct LevelUpMove sCetoddleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 6, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(31, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
    LEVEL_UP_END
};

static const struct LevelUpMove sCetitanLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 6, MOVE_GROWL),
    LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE),
    LEVEL_UP_MOVE(12, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(25, MOVE_FLAIL),
    LEVEL_UP_MOVE(27, MOVE_AVALANCHE),
    LEVEL_UP_MOVE(31, MOVE_BOUNCE),
    LEVEL_UP_MOVE(36, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_AMNESIA),
    LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER),
    LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(53, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CETODDLE

#if P_FAMILY_VELUZA
static const struct LevelUpMove sVeluzaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 7, MOVE_PLUCK),
    LEVEL_UP_MOVE(11, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(20, MOVE_SLASH),
    LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER),
    LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(45, MOVE_LIQUIDATION),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT),
    LEVEL_UP_END
};
#endif //P_FAMILY_VELUZA

#if P_FAMILY_DONDOZO
static const struct LevelUpMove sDondozoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 5, MOVE_TICKLE),
    LEVEL_UP_MOVE(10, MOVE_FLAIL),
    LEVEL_UP_MOVE(15, MOVE_REST),
    LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK),
    LEVEL_UP_MOVE(20, MOVE_DIVE),
    LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(30, MOVE_SOAK),
    LEVEL_UP_MOVE(35, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL),
    LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE),
    LEVEL_UP_MOVE(50, MOVE_ORDER_UP),
    LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_DONDOZO

#if P_FAMILY_TATSUGIRI
static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
    LEVEL_UP_MOVE( 1, MOVE_SPLASH),
    LEVEL_UP_MOVE( 6, MOVE_HARDEN),
    LEVEL_UP_MOVE(12, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(17, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(23, MOVE_SOAK),
    LEVEL_UP_MOVE(28, MOVE_TAUNT),
    LEVEL_UP_MOVE(34, MOVE_MEMENTO),
    LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER),
    LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE),
    LEVEL_UP_END
};
#endif //P_FAMILY_TATSUGIRI

#if P_FAMILY_GREAT_TUSK
static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 7, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(14, MOVE_TAUNT),
    LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH),
    LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH),
    LEVEL_UP_END
};
#endif //P_FAMILY_GREAT_TUSK

#if P_FAMILY_SCREAM_TAIL
static const struct LevelUpMove sScreamTailLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_POUND),
    LEVEL_UP_MOVE( 1, MOVE_SING),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 7, MOVE_HOWL),
    LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(28, MOVE_BODY_SLAM),
    LEVEL_UP_MOVE(35, MOVE_REST),
    LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH),
    LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS),
    LEVEL_UP_MOVE(63, MOVE_CRUNCH),
    LEVEL_UP_MOVE(70, MOVE_WISH),
    LEVEL_UP_MOVE(77, MOVE_GYRO_BALL),
    LEVEL_UP_MOVE(84, MOVE_PERISH_SONG),
    LEVEL_UP_MOVE(91, MOVE_BOOMBURST),
    LEVEL_UP_END
};
#endif //P_FAMILY_SCREAM_TAIL

#if P_FAMILY_BRUTE_BONNET
static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_GROWTH),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(21, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(35, MOVE_PAYBACK),
    LEVEL_UP_MOVE(42, MOVE_THRASH),
    LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(63, MOVE_SPORE),
    LEVEL_UP_MOVE(70, MOVE_INGRAIN),
    LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_BRUTE_BONNET

#if P_FAMILY_FLUTTER_MANE
static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 7, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE(21, MOVE_MEMENTO),
    LEVEL_UP_MOVE(28, MOVE_WISH),
    LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE),
    LEVEL_UP_MOVE(56, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(63, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE),
    LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT),
    LEVEL_UP_MOVE(84, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(91, MOVE_PERISH_SONG),
    LEVEL_UP_END
};
#endif //P_FAMILY_FLUTTER_MANE

#if P_FAMILY_SLITHER_WING
static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_BUG_BITE),
    LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_STOMP),
    LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(35, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(42, MOVE_LUNGE),
    LEVEL_UP_MOVE(49, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(56, MOVE_BULK_UP),
    LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT),
    LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION),
    LEVEL_UP_MOVE(77, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE),
    LEVEL_UP_MOVE(91, MOVE_THRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_SLITHER_WING

#if P_FAMILY_SANDY_SHOCKS
static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 7, MOVE_SPARK),
    LEVEL_UP_MOVE(14, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM),
    LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(49, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(56, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(63, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(77, MOVE_GRAVITY),
    LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX),
    LEVEL_UP_END
};
#endif //P_FAMILY_SANDY_SHOCKS

#if P_FAMILY_IRON_TREADS
static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 7, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(28, MOVE_IRON_HEAD),
    LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(70, MOVE_ENDEAVOR),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT),
    LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_TREADS

#if P_FAMILY_IRON_BUNDLE
static const struct LevelUpMove sIronBundleLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_PRESENT),
    LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL),
    LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_DRILL_PECK),
    LEVEL_UP_MOVE(35, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY),
    LEVEL_UP_MOVE(49, MOVE_FLIP_TURN),
    LEVEL_UP_MOVE(56, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(63, MOVE_AGILITY),
    LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE),
    LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP),
    LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL),
    LEVEL_UP_MOVE(91, MOVE_BLIZZARD),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_BUNDLE

#if P_FAMILY_IRON_HANDS
static const struct LevelUpMove sIronHandsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST),
    LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE(14, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_SLAM),
    LEVEL_UP_MOVE(35, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS),
    LEVEL_UP_MOVE(49, MOVE_CHARGE),
    LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_DETECT),
    LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM),
    LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_HANDS

#if P_FAMILY_IRON_JUGULIS
static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER),
    LEVEL_UP_MOVE( 7, MOVE_ROAR),
    LEVEL_UP_MOVE(14, MOVE_ASSURANCE),
    LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(28, MOVE_SNARL),
    LEVEL_UP_MOVE(35, MOVE_CRUNCH),
    LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE),
    LEVEL_UP_MOVE(56, MOVE_AIR_SLASH),
    LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(70, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_JUGULIS

#if P_FAMILY_IRON_MOTH
static const struct LevelUpMove sIronMothLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_GUST),
    LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY),
    LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG),
    LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN),
    LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(28, MOVE_LUNGE),
    LEVEL_UP_MOVE(35, MOVE_SCREECH),
    LEVEL_UP_MOVE(42, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE),
    LEVEL_UP_MOVE(63, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(70, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(77, MOVE_HURRICANE),
    LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ),
    LEVEL_UP_MOVE(91, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_MOTH

#if P_FAMILY_IRON_THORNS
static const struct LevelUpMove sIronThornsLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_ICE_FANG),
    LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG),
    LEVEL_UP_MOVE( 7, MOVE_SCREECH),
    LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(28, MOVE_BITE),
    LEVEL_UP_MOVE(35, MOVE_CHARGE),
    LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(49, MOVE_SANDSTORM),
    LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE),
    LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE),
    LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK),
    LEVEL_UP_MOVE(84, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_THORNS

#if P_FAMILY_FRIGIBAX
static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 6, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(29, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(40, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(44, MOVE_CRUNCH),
    LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sArctibaxLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 6, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(29, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(45, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(50, MOVE_CRUNCH),
    LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};

static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH),
    LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE),
    LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 6, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(24, MOVE_BITE),
    LEVEL_UP_MOVE(29, MOVE_ICE_FANG),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN),
    LEVEL_UP_MOVE(48, MOVE_ICE_BEAM),
    LEVEL_UP_MOVE(55, MOVE_CRUNCH),
    LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH),
    LEVEL_UP_END
};
#endif //P_FAMILY_FRIGIBAX

#if P_FAMILY_GIMMIGHOUL
static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_END
};

static const struct LevelUpMove sGholdengoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_TACKLE),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE),
    LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE),
    LEVEL_UP_MOVE(28, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(42, MOVE_RECOVER),
    LEVEL_UP_MOVE(49, MOVE_POWER_GEM),
    LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN),
    LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(70, MOVE_MEMENTO),
    LEVEL_UP_END
};
#endif //P_FAMILY_GIMMIGHOUL

#if P_FAMILY_WO_CHIEN
static const struct LevelUpMove sWoChienLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ABSORB),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 5, MOVE_TICKLE),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_POISON_POWDER),
    LEVEL_UP_MOVE(15, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(25, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE(30, MOVE_GROWTH),
    LEVEL_UP_MOVE(35, MOVE_INGRAIN),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(60, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN),
    LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(75, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_WO_CHIEN

#if P_FAMILY_CHIEN_PAO
static const struct LevelUpMove sChienPaoLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 5, MOVE_ICY_WIND),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_MIST),
    LEVEL_UP_MOVE(15, MOVE_HAZE),
    LEVEL_UP_MOVE(20, MOVE_ICE_SHARD),
    LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE),
    LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH),
    LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(65, MOVE_RECOVER),
    LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(75, MOVE_SHEER_COLD),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHIEN_PAO

#if P_FAMILY_TING_LU
static const struct LevelUpMove sTingLuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 5, MOVE_SPIKES),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_STOMP),
    LEVEL_UP_MOVE(20, MOVE_BULLDOZE),
    LEVEL_UP_MOVE(25, MOVE_WHIRLWIND),
    LEVEL_UP_MOVE(30, MOVE_TAUNT),
    LEVEL_UP_MOVE(35, MOVE_THRASH),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE),
    LEVEL_UP_MOVE(65, MOVE_MEMENTO),
    LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE),
    LEVEL_UP_MOVE(75, MOVE_FISSURE),
    LEVEL_UP_END
};
#endif //P_FAMILY_TING_LU

#if P_FAMILY_CHI_YU
static const struct LevelUpMove sChiYuLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_EMBER),
    LEVEL_UP_MOVE( 1, MOVE_SPITE),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL),
    LEVEL_UP_MOVE(10, MOVE_PAYBACK),
    LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP),
    LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE),
    LEVEL_UP_MOVE(25, MOVE_INCINERATE),
    LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY),
    LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(40, MOVE_DARK_PULSE),
    LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(50, MOVE_RUINATION),
    LEVEL_UP_MOVE(55, MOVE_BOUNCE),
    LEVEL_UP_MOVE(60, MOVE_SWAGGER),
    LEVEL_UP_MOVE(65, MOVE_INFERNO),
    LEVEL_UP_MOVE(70, MOVE_MEMENTO),
    LEVEL_UP_MOVE(75, MOVE_OVERHEAT),
    LEVEL_UP_END
};
#endif //P_FAMILY_CHI_YU

#if P_FAMILY_ROARING_MOON
static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_JAW_LOCK),
    LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE( 1, MOVE_SCALE_SHOT),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE( 7, MOVE_INCINERATE),
    LEVEL_UP_MOVE(14, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(21, MOVE_SCARY_FACE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT),
    LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(70, MOVE_FLY),
    LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(84, MOVE_ROOST),
    LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE),
    LEVEL_UP_END
};
#endif //P_FAMILY_ROARING_MOON

#if P_FAMILY_IRON_VALIANT
static const struct LevelUpMove sIronValiantLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_DISABLE),
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
    LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK),
    LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER),
    LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
    LEVEL_UP_MOVE(14, MOVE_FEINT),
    LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM),
    LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(56, MOVE_MOONBLAST),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF),
    LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD),
    LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_VALIANT

#if P_FAMILY_KORAIDON
static const struct LevelUpMove sKoraidonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH),
    LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH),
    LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK),
    LEVEL_UP_MOVE(35, MOVE_AGILITY),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE),
    LEVEL_UP_MOVE(63, MOVE_SCREECH),
    LEVEL_UP_MOVE(70, MOVE_COUNTER),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_KORAIDON

#if P_FAMILY_MIRAIDON
static const struct LevelUpMove sMiraidonLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
    LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE(14, MOVE_CHARGE),
    LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE),
    LEVEL_UP_MOVE(28, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(35, MOVE_AGILITY),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT),
    LEVEL_UP_MOVE(63, MOVE_METAL_SOUND),
    LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_THUNDER),
    LEVEL_UP_MOVE(91, MOVE_OVERHEAT),
    LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_MIRAIDON

#if P_FAMILY_WALKING_WAKE
static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_AQUA_JET),
    LEVEL_UP_MOVE( 7, MOVE_BITE),
    LEVEL_UP_MOVE(14, MOVE_WATER_PULSE),
    LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE),
    LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM),
    LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(70, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER),
    LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP),
    LEVEL_UP_END
};
#endif //P_FAMILY_WALKING_WAKE

#if P_FAMILY_IRON_LEAVES
static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_QUASH),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE( 1, MOVE_WORK_UP),
    LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF),
    LEVEL_UP_MOVE(14, MOVE_RETALIATE),
    LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH),
    LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE),
    LEVEL_UP_MOVE(56, MOVE_PSYBLADE),
    LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT),
    LEVEL_UP_MOVE(70, MOVE_IMPRISON),
    LEVEL_UP_MOVE(77, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH),
    LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_LEAVES

#if P_FAMILY_POLTCHAGEIST
static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(12, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(30, MOVE_HEX),
    LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_LEAF_STORM),
    LEVEL_UP_END
};

static const struct LevelUpMove sSinistchaLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA),
    LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 6, MOVE_ABSORB),
    LEVEL_UP_MOVE(12, MOVE_LIFE_DEW),
    LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY),
    LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN),
    LEVEL_UP_MOVE(30, MOVE_HEX),
    LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER),
    LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP),
    LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(54, MOVE_MEMENTO),
    LEVEL_UP_MOVE(60, MOVE_LEAF_STORM),
    LEVEL_UP_END
};
#endif //P_FAMILY_POLTCHAGEIST

#if P_FAMILY_OKIDOGI
static const struct LevelUpMove sOkidogiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_BITE),
    LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
    LEVEL_UP_MOVE( 1, MOVE_BULK_UP),
    LEVEL_UP_MOVE( 8, MOVE_HOWL),
    LEVEL_UP_MOVE(16, MOVE_POISON_FANG),
    LEVEL_UP_MOVE(24, MOVE_FORCE_PALM),
    LEVEL_UP_MOVE(32, MOVE_COUNTER),
    LEVEL_UP_MOVE(40, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING),
    LEVEL_UP_MOVE(56, MOVE_CRUNCH),
    LEVEL_UP_MOVE(64, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_OKIDOGI

#if P_FAMILY_MUNKIDORI
static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT),
    LEVEL_UP_MOVE( 1, MOVE_FLATTER),
    LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND),
    LEVEL_UP_MOVE(16, MOVE_PSYBEAM),
    LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG),
    LEVEL_UP_MOVE(32, MOVE_POISON_JAB),
    LEVEL_UP_MOVE(40, MOVE_PSYCHIC),
    LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE),
    LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT),
    LEVEL_UP_END
};
#endif //P_FAMILY_MUNKIDORI

#if P_FAMILY_FEZANDIPITI
static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_PECK),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE),
    LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(16, MOVE_ATTRACT),
    LEVEL_UP_MOVE(24, MOVE_WING_ATTACK),
    LEVEL_UP_MOVE(32, MOVE_CROSS_POISON),
    LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP),
    LEVEL_UP_MOVE(48, MOVE_BEAT_UP),
    LEVEL_UP_MOVE(56, MOVE_SWAGGER),
    LEVEL_UP_MOVE(56, MOVE_FLATTER),
    LEVEL_UP_MOVE(64, MOVE_ROOST),
    LEVEL_UP_MOVE(72, MOVE_MOONBLAST),
    LEVEL_UP_END
};
#endif //P_FAMILY_FEZANDIPITI

#if P_FAMILY_OGERPON
static const struct LevelUpMove sOgerponLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_COUNTER),
    LEVEL_UP_MOVE( 1, MOVE_RETALIATE),
    LEVEL_UP_MOVE( 1, MOVE_HORN_LEECH),
    LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
    LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
    LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME),
    LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
    LEVEL_UP_MOVE(12, MOVE_GROWTH),
    LEVEL_UP_MOVE(18, MOVE_SLAM),
    LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP),
    LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL),
    LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP),
    LEVEL_UP_MOVE(42, MOVE_SYNTHESIS),
    LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD),
    LEVEL_UP_MOVE(54, MOVE_POWER_WHIP),
    LEVEL_UP_MOVE(60, MOVE_SUPERPOWER),
    LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER),
    LEVEL_UP_END
};
#endif

#if P_FAMILY_GOUGING_FIRE
static const struct LevelUpMove sGougingFireLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_INCINERATE),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG),
    LEVEL_UP_MOVE(14, MOVE_HOWL),
    LEVEL_UP_MOVE(21, MOVE_BITE),
    LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW),
    LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW),
    LEVEL_UP_MOVE(42, MOVE_MORNING_SUN),
    LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH),
    LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST),
    LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME),
    LEVEL_UP_MOVE(77, MOVE_OUTRAGE),
    LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ),
    LEVEL_UP_MOVE(91, MOVE_RAGING_FURY),
    LEVEL_UP_END
};
#endif //P_FAMILY_GOUGING_FIRE

#if P_FAMILY_RAGING_BOLT
static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE( 1, MOVE_TWISTER),
    LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY),
    LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE),
    LEVEL_UP_MOVE( 1, MOVE_STOMP),
    LEVEL_UP_MOVE( 7, MOVE_CHARGE),
    LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH),
    LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE(28, MOVE_DISCHARGE),
    LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL),
    LEVEL_UP_MOVE(42, MOVE_CALM_MIND),
    LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP),
    LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER),
    LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE),
    LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE),
    LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON),
    LEVEL_UP_MOVE(84, MOVE_BODY_PRESS),
    LEVEL_UP_MOVE(91, MOVE_THUNDER),
    LEVEL_UP_END
};
#endif //P_FAMILY_RAGING_BOLT

#if P_FAMILY_IRON_BOULDER
static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
    LEVEL_UP_MOVE(14, MOVE_SLASH),
    LEVEL_UP_MOVE(21, MOVE_AGILITY),
    LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(35, MOVE_COUNTER),
    LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE),
    LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE),
    LEVEL_UP_MOVE(70, MOVE_MEGAHORN),
    LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(84, MOVE_STONE_EDGE),
    LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_BOULDER

#if P_FAMILY_IRON_CROWN
static const struct LevelUpMove sIronCrownLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_LEER),
    LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN),
    LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
    LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
    LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE),
    LEVEL_UP_MOVE(14, MOVE_SLASH),
    LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE),
    LEVEL_UP_MOVE(28, MOVE_PSYSHOCK),
    LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT),
    LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON),
    LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD),
    LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER),
    LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT),
    LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH),
    LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD),
    LEVEL_UP_MOVE(84, MOVE_METAL_BURST),
    LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM),
    LEVEL_UP_END
};
#endif //P_FAMILY_IRON_CROWN

#if P_FAMILY_TERAPAGOS
static const struct LevelUpMove sTerapagosLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
    LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
    LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
    LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER),
    LEVEL_UP_MOVE(20, MOVE_HEADBUTT),
    LEVEL_UP_MOVE(30, MOVE_PROTECT),
    LEVEL_UP_MOVE(40, MOVE_EARTH_POWER),
    LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM),
    LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM),
    LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE),
    LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH),
    LEVEL_UP_MOVE(90, MOVE_GYRO_BALL),
    LEVEL_UP_END
};
#endif //P_FAMILY_TERAPAGOS

#if P_FAMILY_PECHARUNT
static const struct LevelUpMove sPecharuntLevelUpLearnset[] = {
    LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
    LEVEL_UP_MOVE( 1, MOVE_ROLLOUT),
    LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK),
    LEVEL_UP_MOVE( 1, MOVE_SMOG),
    LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
    LEVEL_UP_MOVE( 1, MOVE_MEMENTO),
    LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
    LEVEL_UP_MOVE( 8, MOVE_WITHDRAW),
    LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND),
    LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS),
    LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT),
    LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL),
    LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN),
    LEVEL_UP_MOVE(56, MOVE_TOXIC),
    LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT),
    LEVEL_UP_MOVE(72, MOVE_RECOVER),
    LEVEL_UP_END
};
#endif //P_FAMILY_PECHARUNT

